Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bgnumis en 24 Marzo 2015, 10:06 am



Título: ECHO no me saca los datos
Publicado por: bgnumis en 24 Marzo 2015, 10:06 am
Hola estoy intentando "mostrar" los datos de una consulta con echo ¡¡¡pero no me los saca¡¡¡ Me estoy volviendo loco, utilizo el siguiente echo:

    echo $busqueda[1];


¿Por qué no funciona?

Si consiguiera sacarlo...¿se podría enmarcar en una tabla?

Por fa ayudadme un poco.



Código
  1. <?php
  2.  
  3. include("conexion.php");
  4.  
  5.  
  6.  
  7.  
  8. $con=mysql_connect($host,$user,$pw) or die ("problemas al conectar");
  9. mysql_select_db($db,$con) or die ("problemas al conectar la bd");
  10. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='$_POST[id_deleg]'") ;
  11.  
  12.  
  13.    echo $busqueda[1];
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21. ?>
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. <html lang="es">
  29.  
  30. <body>
  31. <header>
  32. <h6>  <td  width="15px" align="center">
  33.        <!-- Proporcionar Link para cerrar sesion -->
  34.        <a href="principal.php">VOLVER A REGISTRAR</a>
  35.    </td>
  36.  
  37. </h6>
  38.  
  39.  
  40. </body>
  41. </html>
  42.  
  43.  
  44.  
  45.  
  46.  





Título: Re: ECHO no me saca los datos
Publicado por: engel lex en 24 Marzo 2015, 10:17 am
no te saca los datos porque no los has pedido...

te recomiendo que no uses ya esas funciona es de mysql porque se consideran obsoletas y quedarán fuera de php dentro de poco, usa mysqli o pdo
(http://i.imgur.com/5bmEVjT.png)



sobre tu error lo puedes ver en la documentación oficial de php.net
http://php.net/manual/es/function.mysql-query.php (http://php.net/manual/es/function.mysql-query.php)

(http://i.imgur.com/jporzoX.png)


Título: Re: ECHO no me saca los datos
Publicado por: bgnumis en 26 Marzo 2015, 22:44 pm
Hola,

Perdonad no encuentro forma de que me saque los datos del código:

Código
  1.  
  2. $con=mysql_connect($host,$user,$pw) or die ("problemas al conectar");
  3. mysql_select_db($db,$con) or die ("problemas al conectar la bd");
  4. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='$_POST[id_del]'") ;
  5.  
  6. while($fila=mysql_fetch_array($busqueda)){
  7. echo $fila[1];
  8. }
  9.  

¿Qué me estoy saltando?

¿Como podría mostrar los datos en una tabla?


Título: Re: ECHO no me saca los datos
Publicado por: #!drvy en 26 Marzo 2015, 23:05 pm
Código
  1. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='$_POST[id_del]'") ;

Eso no es correcto aunque no se hasta que punto PHP lo podria corregir por si mismo. Los index de un array siempre deben ir como string.

Código
  1. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='".$_POST['id_del']."'");

De todos modos eso es muy pero que muy inseguro. Nunca pases directamente el input de un usuario sin filtarlo.

Saludos


Título: Re: ECHO no me saca los datos
Publicado por: engel lex en 26 Marzo 2015, 23:06 pm
primero debes revisar si la respuesta está vacía y si lo está, si hay errores o si es que no hay resultados

Código
  1. if(!$busqueda){
  2.  if(mysql_error($con)){
  3.    die(mysql_error($con));
  4.  }else{
  5.    die("la busqueda no retornó resultados");
  6.  }
  7.  
  8. }


Título: Re: ECHO no me saca los datos
Publicado por: MinusFour en 26 Marzo 2015, 23:45 pm
Código
  1. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='$_POST[id_del]'") ;

Eso no es correcto aunque no se hasta que punto PHP lo podria corregir por si mismo. Los index de un array siempre deben ir como string.

Código
  1. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='".$_POST['id_del']."'");

De todos modos eso es muy pero que muy inseguro. Nunca pases directamente el input de un usuario sin filtarlo.

Saludos

De hecho no es necesario con double quoted strings poner los '' para los indices de arreglos asociativos:

http://php.net/manual/en/language.types.string.php#example-93

No creo que deberia darte problemas con la variables global $_, aunque yo preferiria usar curly braces y single quotes para los indices:

Código
  1. $busqueda=mysql_query("SELECT * FROM afil WHERE DEL='{$_POST['id_del']}'") ;

Si no tienes ningun error a la hora de seleccionar la BD o iniciar la conexion entonces la consulta debe estar mal o no hay resultados.