Foros del Web » Programando para Internet » PHP »

Adaptar codigo para otros campos

Estas en el tema de Adaptar codigo para otros campos en el foro de PHP en Foros del Web. Hola tengo mi codigo: Código PHP: <? $cadena = $_POST [ 'numero' ]; if ( ereg ( "^(651|652|653|654|655|656|675|657|658|605|615|625|635|645|665)([0-9]{6})$" , $cadena )) { include( "config.php" ); $resp  =  ...
  #1 (permalink)  
Antiguo 30/12/2003, 13:21
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Adaptar codigo para otros campos

Hola tengo mi codigo:

Código PHP:
<?
$cadena
=$_POST['numero'];
if (
ereg("^(651|652|653|654|655|656|675|657|658|605|615|625|635|645|665)([0-9]{6})$",$cadena)) {
include(
"config.php");
$resp mysql_query("select * from datos where usuarios='$cadena'") or die (mysql_error());
if(
mysql_num_rows($resp) != "0") {
echo 
" El numero existe ";
} else {
function 
f_genera_psw($num=8){ // By Kernellover
$voc = array ("a","e","i","o","u");
$con = array ("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","w","x","y","z");
$psw ""// cadena que contendrá el password.
$vc rand(0,1); // definde si empieza por vocal o consonante.
for ($n=0$n<$num$n++){
if (
$vc==1){
$vc=0;
$psw .= $con[rand(0,count($con)-1)];
}
$psw .= $voc[rand(0,count($voc)-1)];
$psw .= $con[rand(0,count($con)-1)];
}
$psw ereg_replace ("q","qu",$psw);
$psw ereg_replace ("quu","que",$psw);
$psw ereg_replace ("yi","ya",$psw);
$psw ereg_replace ("iy","ay",$psw);
$psw substr($psw,0,$num);
return 
$psw;
}
$pass1 f_genera_psw();
$pass2 md5($pass1);
$ins mysql_query("insert into datos (usuarios,contrasenas,nombre,email) VALUES  ('$cadena','$pass2','$_POST[nombre]','$_POST[email]')") or die (mysql_error());
$comando "gsgc --host localhost --send " $_POST['numero'] . " \""$pass1 " - Esta es tu contraseña." "\"" ;
exec ($comando);
$para "$_POST[email]";
$asunto "Registro completado";
$cuerpo "Bienvenido $_POST[nombre] en tu movil recibiras la contraseña de acceso. [url]http://www.marrugino.uni.cc[/url]";
$origen "[email protected]";
$cabecera="From: " $origen "\nReply-To: " $origen ;
mail($para$asunto$cuerpo$cabecera);
echo 
"Bienvenido $_POST[nombre] en tu movil $_POST[numero] recibiras la contraseña de acceso. [url]http://www.marrugino.uni.cc[/url]";
}
if(!
$ins) { echo "No se han podido introducir datos."; }
} else {
echo 
"no valido: $cadena";
}
?>
Este codigo guarda los datos de 4 cuadros de texto en 4 campos.
CUADRO DE TEXTO CAMPO
numero ---------------- usuarios
texto ------------------- contrasena
nombre ---------------- nombre
email ------------------- email

Me gustaria modificicar el codigo para que guarde en otra tabla "usuario" con la siguiente estruxtura

ID
usuario
pass
nivel_acceso

ID que no lo toque mi script (creo que se genera sola, 1, 2...)
usuario -- le pase el valor de numero
pass -- le pase el valor de texto
nivel_acceso -- le pase siempre el valor 0

Despues en otra tabla llamada "datos" que contiene dos campos llamados nombre y email

nombre -- le pase el valor de nombre
email -- le pase el valor de email

En resumen quiero adaptar mi codigo a una base de datos de otro codigo, pero para ello quiero hacerlo sin tocar nada del otro codigo solo el mio y para ello he creado otra tabla ya que este script que no quiero tocar no tiene "email" ni "nombre"

Es que yo por mas que lo intento siempre me dice este error:
Incorrect table definition; There can only be one auto column and it must be defined

un saludo
  #2 (permalink)  
Antiguo 30/12/2003, 13:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. el "otro código" tiene un Identificador (ID_usuario) para que lo uses si lo deseas en relaciones con otras tablas:

id_tabla_datos
id_usuario_otro_codigo
email
nombre
nose
otros

Ese campo marcado en negrita es el que establece la "clave foránea" con ambas tablas para que respeten la "integridad referencial" (normalización)..

A partir de ahí .. las consultas SQL se complican un poco por qué siempre tiene que tener encuenta: "... WHERE id_usuario.usuarios=id_tutabla.tutabla" ademas del resto de condiciones que requieras.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/12/2003, 14:44
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues intente hacerlo para que mi codigo escribiera en las tablas de tu codigo de esta manera:

Código PHP:
$ins mysql_query("insert into usuarios (usuario,pass,nivel_acceso,nombre,email) VALUES  ('$cadena','$pass2','0','$_POST[nombre]','$_POST[email]')") or die (mysql_error()); 
mira aqui tengo un pantalla del phpmyadmin para veas como he dejado las tablas de tu codigo:
http://blue.paginafacil.com/pantalla2.jpg

Creo que todo esta bien y me sale este mensaje de error:

Unknown column 'usuarios' in 'where clause'

Y no entiendo porque esa tabla es como una normal deberia de funcionar ¿no?

un saludo
  #4 (permalink)  
Antiguo 30/12/2003, 14:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero donde te dá el error exactamente?

Código PHP:
$ins mysql_query("insert into datos (usuarios,contrasenas,nombre,email) VALUES   ('$cadena','$pass2','$_POST[nombre]','$_POST[email]')") or die (mysql_error()); 
ahí? .. fijate que tus campos se llaman usuarios y la de la tabla usuarios se llama usuario (sin s de plural) ... Revisa bien los errores que te dá PHP o Msyql ..

Un saludo,

(PD: el link de la imagen no se vé nada .. no permiten linkear imagenes tu servicio de hosting).
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 30/12/2003, 15:04
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues el error me lo da al intentar escribir en la base de datos de tu script, en mi script he cambiado "datos" por "usuarios" para que escriba hay y mediante:

Código PHP:
$ins mysql_query("insert into usuarios (usuario,pass,nivel_acceso,nombre,email) VALUES  ('$cadena','$pass2','0','$_POST[nombre]','$_POST[email]')") or die (mysql_error()); 
Escribo en la tabla usuarios, lo he revisado y no veo el fallo, mi tabla no la utilizo para nada, intento escribir directamente en la tuya

aqui tiene un nuevo link: http://tombraider.iefactory.com/pantalla2.jpg es solo para vieses que he añadido dos campos mas email y nombre

un saludo

Última edición por escan_0; 30/12/2003 a las 15:05
  #6 (permalink)  
Antiguo 30/12/2003, 15:35
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Ya esta solucionado, el problema no estaba en ese codigo si no en:

$resp = mysql_query("select * from usuarios where usuarios='$cadena'")

Es sin s -->
$resp = mysql_query("select * from usuarios where usuario='$cadena'")
je je

Gracias, por el codigo, funciona muy bien :)

salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.