Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: the_jocker en 11 Enero 2012, 17:56 pm



Título: Obtencion y comparacion de datos [PHP-Mysql]
Publicado por: the_jocker en 11 Enero 2012, 17:56 pm
Buenas, soy nuevo en el foro y mas nuevos en php, resulta de que vendo juegos xxx y este es mi primer proyecto web, hacer una interfaz para buscar en una base de datos los juegos, pongo un buscador, tipeo el juego y da como resultado nombre, cantidad de dvd, descrip, imagen y un videito para orinentarme.
Hasta ahora va en camino pero cuando trato de buscar el juego en la bd me tira un solo juego y los demas no aqui el codigo:
Código
  1. <?php
  2. $conexion = mysql_connect("localhost", "xxx", "xxx") or
  3. die("Problemas con la bd".mysql_error());
  4. $select = mysql_select_db("juegos", $conexion) or
  5. die("Problemas con la bd, no se encuentra".mysql_error());
  6. $consulta = "SELECT nombre,cantidad,descripcion FROM ps2 ";
  7. $respuesta = mysql_query($consulta, $conexion) or
  8. die("Problemas en la obtencion de datos".mysql_error());
  9. $array = mysql_fetch_array($respuesta);
  10. $busca = $_POST['buscar'];
  11. if($busca == $array['nombre'])
  12. {
  13. ?>
  14. <html>
  15. <h1><span id="uno"> Consulta de </span><span id="dos" > JUEGOS </span></h1>
  16. <link rel="stylesheet" href="estilo.css" type="text/css" />
  17. <ul>
  18. <li>NOMBRE: <?php echo "<strong>".$array['nombre']."</strong><br>";?></li>
  19. <li>CANTIDAD DVD: <?php echo "<strong>".$array['cantidad']."</strong><br>";?></li>
  20. <li>DESCRIPCION: <?php echo "<strong>".$array['descripcion']."</strong>";?></li>
  21. <li><input type="button" value="Volver" onclick="location.href='index.html'"></li>
  22. </ul>
  23. </html>
  24. <?php
  25. }
  26. else
  27. {
  28. echo 'no';
  29. }
  30. mysql_close($conexion);
  31. ?>

Desde ya Gracias...


Título: Re: Obtencion y comparacion de datos [PHP-Mysql]
Publicado por: dark_sargon en 11 Enero 2012, 18:45 pm
Podrías usar:
Código
  1. $busca = $_POST['buscar'];
  2. $consulta = "SELECT nombre,cantidad,descripcion FROM ps2 WHERE nombre LIKE '%$busca%'";

Con lo anterior solo lees los datos que te interesan ya que con tu script estás leyendo toda la tabla.

Luego recorres el array e imprimes los resultados:
Código
  1. while($fila = mysql_fetch_array($respuesta, MYSQL_ASSOC)){
  2.   echo $fila['nombre'];
  3.   echo "<br/>";
  4.   echo $fila['cantidad'];
  5.   echo "<br/>";
  6.   echo $fila['descripcion'];
  7.   echo "<br/><br/>";
  8. }

Código
  1. <?php
  2. $conexion = mysql_connect("localhost", "xxx", "xxx") or
  3. die("Problemas con la bd".mysql_error());
  4. $select = mysql_select_db("juegos", $conexion) or
  5. die("Problemas con la bd, no se encuentra".mysql_error());
  6. $busca = $_POST['buscar'];
  7. $consulta = "SELECT nombre,cantidad,descripcion FROM ps2 WHERE nombre LIKE '%$busca%'";
  8. $respuesta = mysql_query($consulta, $conexion) or
  9. die("Problemas en la obtencion de datos".mysql_error());
  10.  
  11. while($fila = mysql_fetch_array($respuesta, MYSQL_ASSOC)){
  12.   echo $fila['nombre'];
  13.   echo "<br/>";
  14.   echo $fila['cantidad'];
  15.   echo "<br/>";
  16.   echo $fila['descripcion'];
  17.   echo "<br/><br/>";
  18. }
  19.  
  20. mysql_close($conexion);
  21. ?>

Espero que funcione  ;D


Título: Re: Obtencion y comparacion de datos [PHP-Mysql]
Publicado por: cassiani en 11 Enero 2012, 19:05 pm
eso y que por seguridad filtre la variable antes de concatenarla a la cadena de la consulta.


Título: Re: Obtencion y comparacion de datos [PHP-Mysql]
Publicado por: the_jocker en 11 Enero 2012, 19:15 pm
Gracias por Responder me funciono el codigo, es que me saltee una etiqueta de php y no la encontraba, supongo que estaa mal hecha la consulta, gracias si me pueden pasar nos papeles para leer mas sobre consultas les estoy agradecido, y para poner imagenes y videos en php pero sacandolos de una bd, si es jodido no se hagan problema con esto basta, es mi ultima consulta la de las imagenes y videos, si no se puede por favor den el tema por solucionado les agradezco.