Autor Tema: [Ayuda] Mini sistema de licencias  (Leído 734 veces)

Desconectado Dylansaga

  • PHPerit@
  • *
  • Mensajes: 2
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
[Ayuda] Mini sistema de licencias
« en: 13 de Octubre de 2011, 02:15:26 am »
Buenas,estoy trabajando en una web con el fin de promocionar mis aplicaciones. Ya tengo listo el sistema de usuarios,el registro,etc.
El único problema es el sistema de licencias,con el cual,te da un número único de licencia y con él puedes acceder a una aplicación mía.

Miren,el código que tengo en el archivo proceso_licencia.php (el archivo que se supone que haga el sistema automático),es este:

Citar
<?php
$host = "mysql.webcindario.com";
$username = "mi db";
$password = "mi pass";
$dbname = "mi db";

$connection = mysql_connect($host, $username, $password);
$db= mysql_select_db($dbname,$connection);
   
$num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva licencia
$usuario_licencia = substr(rand(),0,$num_caracteres); // generamos una nueva licencia de forma aleatoria
echo $usuario_licencia;

$sql = mysql_query("INSERT INTO licencias (licencia) VALUES ('que pongo aqui?')");
mysql_query($sql);

?>

El problema es que no lo guarda en la base de datos,como hago yo para que los números que de la variable usuario_licencia se guarden en mi bd?

Comunidad PHPeros

[Ayuda] Mini sistema de licencias
« en: 13 de Octubre de 2011, 02:15:26 am »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Mini sistema de licencias
« Respuesta #1 en: 13 de Octubre de 2011, 04:16:11 am »
Donde dice: "que pongo aqui?" pones la variable, es decir $usuario_licencia

Desconectado Marcus

  • PHPer@
  • **
  • Mensajes: 72
  • Karma: 1
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Ayuda] Mini sistema de licencias
« Respuesta #2 en: 13 de Octubre de 2011, 04:18:31 am »
Hola,

Acerca de tu problema:
$sql = mysql_query("INSERT INTO licencias (licencia) VALUES ('que pongo aqui?')");

Que es lo que pones ahi? pues si no pones nada, evidentemente no se va a guardar nada en tu base de datos.

Deberías poner:

$sql = mysql_query("INSERT INTO licencias (licencia) VALUES ('".$usuario_licencia."')");

Ah, tambien verificar si la licencia generada no esta repetida antes de insertarla en la base de datos.

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Mini sistema de licencias
« Respuesta #3 en: 13 de Octubre de 2011, 15:04:03 pm »
Yo no le asignaria una variable..

Pondría el query sin variable, es decir:

mysql_query("INSERT INTO licencias (licencia) VALUES ('".$usuario_licencia."')");



Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[Ayuda] Mini sistema de licencias
« Respuesta #4 en: 13 de Octubre de 2011, 15:20:39 pm »
Si lleva razón xD, pero vamos que por 6 caracteres no pasa nada...

Desconectado Jumarras

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 3
  • Sexo: Masculino
  • Ten cerca a tus amigos, pero mas a tus enemigos
    • Ver Perfil
Re:[Ayuda] Mini sistema de licencias
« Respuesta #5 en: 13 de Octubre de 2011, 19:49:48 pm »
Yo te recomendaria usar otra forma de meter datos a la mysql. Yo personalmente, siempre he tenido problemas con el VALUES prefiero usar SET.Esa query que haces es muy simple, y vas bien con VALUES, pero puede que necesites meter muchos valores mas. Una breve explicacion porque prefiero usar SET:

Cuando haces mediante VALUES, si hay algun error, te da error, pero no mete nada en la mysql, sin embargo, si usas SET, tambien te da error y lo mete en la mysql, lo que esta bien, asi que puedes verificar donde esta el fallo

Este es el codigo que usarias, con VALUES->
Código: [Seleccionar]
mysql_query("INSERT INTO licencias (licencia) VALUES ('".$usuario_licencia."')");Este el codigo con SET->
Código: [Seleccionar]
mysql_query("INSERT INTO licencias SET licencia = "'.$usuario_licencia.'");
Ahora, para el que no lo haya usado nunca set:
Despues del SET, viene el nombre de la columna de la mysql, con el valor que quieres darle.
Si quieres meter mas de un valor, seria de esta forma->

Código: [Seleccionar]
mysql_query("INSERT INTO tabla_mysql SET columna1 = "valor1", columna2 = "valor2");
Lo bueno de usar SET es que puedes meter las columnas en el orden que quieras. En el caso de VALUES creo que no se puede.

Salu2!

Desconectado Dylansaga

  • PHPerit@
  • *
  • Mensajes: 2
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Ayuda] Mini sistema de licencias
« Respuesta #6 en: 13 de Octubre de 2011, 21:04:39 pm »
Emm,bueno,ya lo resolví,utilize lo ue ustedes me dijieron pero igual no lo agregaba.
Asi que le meti un if y listo xD
aqui el codigo por si aquello:
Citar
<?php
$host = "mysql.webcindario.com";
$username = "";
$password = "";
$dbname = "";

$connection = mysql_connect($host, $username, $password);
$db= mysql_select_db($dbname,$connection);
   
$num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva licencia
$usuario_licencia = substr(rand(),0,$num_caracteres); // generamos una nueva licencia de forma aleatoria
echo $usuario_licencia;


if (isset($usuario_licencia)) {
mysql_query("INSERT INTO licencias (licencia) VALUES ('".$usuario_licencia."')");
}

?>

Desconectado lalitros

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re:[Ayuda] Mini sistema de licencias
« Respuesta #7 en: 19 de Octubre de 2011, 04:39:10 am »
Pues es obvio que no lo va a agregar  porque tienes repetido mysql_query.
Para verificar si se inserto o no, utiliza:


$sql 
"INSERT INTO licencias (licencia) VALUES (&#39;".$usuario_licencia."&#39;)";
mysql_query($sql);

if(
$sql){
   echo 
"se inserto";
}else{
   echo 
"Error";
}


Saludos!

Si me dieran a escojer entre el MUNDO y Tu.. Te escojeria a Ti, porque mi MUNDO ERES TU

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Ayuda] Mini sistema de licencias
« Respuesta #8 en: 21 de Octubre de 2011, 04:49:50 am »
En el código original me habia quedado ciego al ver esto:
Código: [Seleccionar]
$sql = mysql_query("INSERT INTO licencias (licencia) VALUES ('que pongo aqui?')");
mysql_query($sql);
Twitter: @JoakoM010