Foros del Web » Programando para Internet » PHP »

Hola, Tengo un grave problema con PHP...

Estas en el tema de Hola, Tengo un grave problema con PHP... en el foro de PHP en Foros del Web. Ante todo saludos a todos y todas.... soy novato en la programacion PHP pero mas o menos eh entrado en el tema con ganas... Voy ...
  #1 (permalink)  
Antiguo 25/06/2012, 18:15
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Exclamación Hola, Tengo un grave problema con PHP...

Ante todo saludos a todos y todas.... soy novato en la programacion PHP pero mas o menos eh entrado en el tema con ganas... Voy al punto a tratar de mi grave problema...

Tengo q entregar un codigo el cual ya hize pero en mi ultima correccion el profesor me dijo que estaba bien q daba un resultado bueno pero q tiene una deficiencia... yo le pregunte y le pregunte muchas veces y solo alcanzo a darme esta pista "tu codigo tiene una deficiencia en cuanto a la secuenciacion del algoritmo o bien en si la forma en como secuencias tu algoritmo"... yo lo entendi mas no consigo dar con mi problema en el algoritmo...

Eh aki mi algoritmo el cual dijo tenia la falla... x favor ayudenme sino entrego esto el jueves 28 esa materia me kedara y tendre q ver esa materia nuevamente =( el algoritmo es parte de varios q tengo en una pagina web tipo sistema...

<?php
//aki declaro las variables para la conexion
$dbhost='localhost';
$dbusername='jean';
$dbuserpass='';
$dbname='admin';
//aki hago la conexion
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
//aki compruebo q la variable este definida
if (isset($_POST['username'])) {
$username=$_POST['username'];
//aki compruebo q la variable contenga un valor
if ($username==NULL) {
echo "<font color='red'>Introduzca una cedula para poder consultar</font>";
}else{
//hago la consulta para poder buscar una persona
$query = mysql_query("SELECT cedula,contrasena,nombre,direccion,telefono FROM usuario WHERE cedula = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['cedula'] != $username) {
echo "<font color='red'>la cedula no existe</font>";
}else{
print $data['nombre'].' Vive en: "'.$data['direccion'].'"'.' y Su Numero de telefono es: "'.$data['telefono'].'"';
//no se donde puede estar mi problema les pido mucha ayuda por favor
}
}
}
?>

cualquier duda preguntenme... Gracias de ante mano!!! x favor ayudenme con esto señores expertos, intermedios y novatos... estoy super frustrado con esto...
  #2 (permalink)  
Antiguo 25/06/2012, 18:56
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Alguien por favor Ayudeme sino plantee bien algo diganme es muy urgente...
  #3 (permalink)  
Antiguo 25/06/2012, 19:04
Avatar de thetwister  
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Hola, Tengo un grave problema con PHP...

Tambien estoy aprendiendo php asi que no soy un experto pero creo que en la linea 17 y 22 estaria el problema, repito, dije creo
Código PHP:
Ver original
  1. //aki declaro las variables para la conexion
  2. $dbhost='localhost';
  3. $dbusername='jean';
  4. $dbuserpass='';
  5. $dbname='admin';
  6. //aki hago la conexion
  7. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  8. mysql_select_db($dbname) or die('Cannot select database');
  9. //aki compruebo q la variable este definida
  10. if (isset($_POST['username'])) {
  11. $username=$_POST['username'];
  12. //aki compruebo q la variable contenga un valor
  13. if ($username==NULL) {
  14. echo "<font color='red'>Introduzca una cedula para poder consultar</font>";
  15. }else{
  16. //hago la consulta para poder buscar una persona
  17. $query = mysql_query("SELECT cedula,contrasena,nombre,direccion,telefono FROM usuario WHERE cedula = '$username'") or die(mysql_error());
  18. $data = mysql_fetch_array($query);
  19. if($data['cedula'] != $username) {
  20. echo "<font color='red'>la cedula no existe</font>";
  21. }else{
  22. print $data['nombre'].' Vive en: "'.$data['direccion'].'"'.' y Su Numero de telefono es: "'.$data['telefono'].'"';
  23. //no se donde puede estar mi problema les pido mucha ayuda por favor
  24. }
  25. }
  26. }

Creo que quedaria así

Código PHP:
Ver original
  1. //aki declaro las variables para la conexion
  2. $dbhost='localhost';
  3. $dbusername='jean';
  4. $dbuserpass='';
  5. $dbname='admin';
  6. //aki hago la conexion
  7. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  8. mysql_select_db($dbname) or die('Cannot select database');
  9. //aki compruebo q la variable este definida
  10. if (isset($_POST['username'])) {
  11. $username=$_POST['username'];
  12. //aki compruebo q la variable contenga un valor
  13. if ($username==NULL) {
  14. echo "<font color='red'>Introduzca una cedula para poder consultar</font>";
  15. }else{
  16. //hago la consulta para poder buscar una persona
  17. $query = mysql_query("SELECT * FROM usuario WHERE cedula = '$username'") or die(mysql_error());
  18. $data = mysql_fetch_array($query);
  19. if($data['cedula'] == $username) {
  20. echo $data['nombre']." Vive en: ".$data['direccion']." y Su Numero de telefono es: ".$data['telefono'];
  21. }
  22. else{
  23. echo "<font color='red'>la cedula no existe</font>";
  24. //no se donde puede estar mi problema les pido mucha ayuda por favor
  25. }
  26. }
  27. }
Linea 17
¿porque? porque con SELECT * FROM usuario WHERE cedula = '$username'" ya estas diciendo que buscas en una fila un usuario que se llame como $username.
Quizas aqui tambien pueda ser asi
Código PHP:
$query mysql_query("SELECT * FROM usuario WHERE cedula LIKE '$username'") or die(mysql_error()); 

y en la linea 22 creo que habia algunos puntos y comas que sobraban, ademas en la linea 19 que sea igua $data['cedula'] y $username pero del

Espero te sirva
  #4 (permalink)  
Antiguo 25/06/2012, 19:11
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Hola thetwister, gracias x tu respuesta y por haber tomado la molestia en ayudarme... revisare y te digo =)
  #5 (permalink)  
Antiguo 25/06/2012, 19:16
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Amigo de verdad q lo que me acaba de dar es la respuesta al asunto claramente es lo q buscaba!!! Le agradezco de todo corazon amigo ah salvado mi materia con tan solo una simple ayudita!! q se que le ah dedicado un rato de su paciensia!!... =D estoy agradecido vere como funciona eso del karma y le calificare positivo =)
  #6 (permalink)  
Antiguo 25/06/2012, 19:18
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Hola, Tengo un grave problema con PHP...

Hay varias cosas, sin embargo, la consulta no tiene nada que ver.

La comparacion:
if ($username==NULL) {
No tiene sentido luego de hacer:
if (isset($_POST['username'])) {
Si quieres verificar que no este vacio el valor, compara con una cadena vacia. Una cadena vacia no es lo mismo que null.
if ($username=="") {

Lo otro es que ya tu consulta filtra por cedula:
$query = mysql_query("SELECT cedula,contrasena,nombre,direccion,telefono FROM usuario WHERE cedula = '$username'") or die(mysql_error());
Esta de mas luego obtener el valor y preguntar nuevamente si la cedula es igual al valor pasado, porque eso ya se hizo en la consulta:
if($data['cedula'] != $username) {

Lo que si debes verificar es que la consulta devuelva resultados, usando mysql_num_rows()
  #7 (permalink)  
Antiguo 25/06/2012, 19:25
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Gracias Ronruby voy a trabajar en eso que me has dico sobr mysql_num_rows() q lo eh visto en varios algoritmos... tienes razon con respecto a lo de comprobar
if ($username==""){
ya q es verdad no es lo mismo un NULL a un "" y ps trabajare en ello amigo y le enviare resultados a ver q tal voy =)
  #8 (permalink)  
Antiguo 25/06/2012, 20:13
Avatar de thetwister  
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Hola, Tengo un grave problema con PHP...

no hay problema

Lo que dice Ronruby es cierto, realmente ni me fije si habia codigo de mas repitiendo lo que otro ya hacia, oops

creo que al final también faltaria cerrar la conexion con mysql_close;
  #9 (permalink)  
Antiguo 26/06/2012, 17:02
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Cita:
Iniciado por Ronruby Ver Mensaje
Hay varias cosas, sin embargo, la consulta no tiene nada que ver.

La comparacion:
if ($username==NULL) {
No tiene sentido luego de hacer:
if (isset($_POST['username'])) {
Si quieres verificar que no este vacio el valor, compara con una cadena vacia. Una cadena vacia no es lo mismo que null.
if ($username=="") {
()
Entendi perfectamente la parte de "if($username==""){

lo q no comprendo muy bien es eso de "if (isset($_POST['username'])){
Eh investigado sobre la instruccion "isset" pero no logro dar con la definicion clara para saber lo q realmente hace.. bueno tengo entendido q es para saber si una variable esta declarada.. pero no comprendo bien el concepto.. x favor perdonad mi falta de conocimientos pero podreis darme una definicion propia personal para aclarar mi duda sobre q significa "isset"???
  #10 (permalink)  
Antiguo 26/06/2012, 17:06
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Hola, Tengo un grave problema con PHP...

Agrego otra cosa que es muy comun que de error,
mysql_query("consulta", $variableconexion);
  #11 (permalink)  
Antiguo 26/06/2012, 17:23
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Hola, Tengo un grave problema con PHP...

Amigo rodrigo, No comprendo la finalidad de tu comentario pero me gustaria comprender a que viene eso q dices respecto a "es muy comun que de error, mysql_query("consulta", $variableconexion);" perdona mi poca comprencion pero me confundio tu comentario un poco =/

Etiquetas: mysql, sql, variables, usuarios
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 19:59.