Foros del Web » Programando para Internet » PHP »

Mostrar datos de una tabla (mysql)

Estas en el tema de Mostrar datos de una tabla (mysql) en el foro de PHP en Foros del Web. Buenas, estoy recien empezando con PHP y queria ver si me podian dar una mano con un problema que supongo es bastante simple. Tengo mi ...
  #1 (permalink)  
Antiguo 24/05/2009, 19:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 109
Antigüedad: 15 años, 8 meses
Puntos: 3
Mostrar datos de una tabla (mysql)

Buenas, estoy recien empezando con PHP y queria ver si me podian dar una mano con un problema que supongo es bastante simple.
Tengo mi base de datos creada en MySQL 4, y en ella una tabla que se llama "seriales", esa tabla todavia no esta definido pero tendra alrededor de 10 campos, pero el campo mas importante es el campo "serial".
Lo que necesito es escribir en un input de texto un numero de serial, darle a un boton submit y que me muestre todos los campos relacionados con ese serial.

Hasta ahora lo que tengo es esto.
Código PHP:
  <?php
  
if(isset($_POST['submit'])){
  if(isset(
$_GET['go'])){
  if(
preg_match("/^[  a-zA-Z]+/"$_POST['name'])){
  
$name=$_POST['name'];
  
  
$db=mysql_connect  ("server""username",  "password") or die ('I cannot connect to the database  because: ' mysql_error());
  
  
$mydb=mysql_select_db("nombre");
  
  
$sql="SELECT * FROM seriales";
  
  
$result=mysql_query($sql);
  
  while(
$row=mysql_fetch_array($result)){
          
$FirstName  =$row['username'];
          
$LastName=$row['userpassword'];
          
$ID=$row['id'];

  
  echo 
"<ul>\n";
  echo 
"<li>" .$FirstName " " $LastName .  "</li>\n";
  echo 
"</ul>";
  }
  }
  else{
  echo  
"<p>Please enter a search query</p>";
  }
  }
  }
?>
Funciona bien, pero lo unico que hace es mostrarme TODOS los datos de la tabla, cuando en realidad necesito que me muestre los relacionados a un campo especifico. Todo esto viene de un html.
Código HTML:
<html>
  <head>
    <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
    <title></title>
  </head>
  <body bgcolor="#FF9932">
    <h3></h3>
    <p></p>
    <form  method="post" action="index.php?go"  id="searchform">
      <input  type="text" name="name">
      <input  type="submit" name="submit" value="Search">
    </form>
  </body>
</html> 
Gracias
  #2 (permalink)  
Antiguo 24/05/2009, 19:46
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Mostrar datos de una tabla (mysql)

checa tu consulta es eso lo que hace consultar todos los campo para especificar algo asi deberias de usar la clausula WHERE de mysql, tu consulta deberia ser algo asi:

Código PHP:
$sql="SELECT * FROM seriales WHERE serial LIKE '%$name%'"
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 24/05/2009, 20:16
 
Fecha de Ingreso: agosto-2008
Mensajes: 109
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Mostrar datos de una tabla (mysql)

Me funciono perfecto, gracias. Ahora me doy cuenta que, si pongo una sola letra me muestra todos los resultados con esa letra. Yo necesitaria que lo que se busca sea exactamente el mismo contenido que el campo "serial". Ejemplo si el seria les "1234" que lo muestre si pongo "1234" no si pongo "1" o "2", etc. Modifique un poco el php pensando que ahi estaba el problema pero sigue igual.

Código PHP:
  <?php
  
if(isset($_POST['submit'])){
  if(isset(
$_GET['go'])){
  if(
$_POST['name']){
  
$name=$_POST['name'];
  
//connect  to the database
  
$db=mysql_connect  ("server""username",  "password") or die ('I cannot connect to the database  because: ' mysql_error());
  
//-select  the database to use
  
$mydb=mysql_select_db("nombre");
  
//-query  the database table
  
$sql="SELECT * FROM yourtable WHERE userpassword LIKE '%$name%'";
  
//-run  the query against the mysql query function
  
$result=mysql_query($sql);
  
//-create  while loop and loop through result set
  
while($row=mysql_fetch_array($result)){
          
$FirstName  =$row['username'];
          
$LastName=$row['userpassword'];
          
$ID=$row['id'];

  
//-display the result of the array
  
echo "<ul>\n";
  echo 
"<li>" .$FirstName " " $LastName .  "</li>\n";
  echo 
"</ul>";
  }
  }
  else{
  echo  
"<p>Please enter a search query</p>";
  }
  }
  }
?>

Última edición por Personagorda; 24/05/2009 a las 20:27
  #4 (permalink)  
Antiguo 24/05/2009, 20:42
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Mostrar datos de una tabla (mysql)

no entonces no uses like usa = asi mas o menos:

Código PHP:
$sql="SELECT * FROM seriales WHERE serial='$name'"
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #5 (permalink)  
Antiguo 24/05/2009, 20:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mostrar datos de una tabla (mysql)

Si lo que deseas es buscar en la base de datos el password de alguien, no debes poner like '%password%'

Eso no es lo practico lo indicado es buscar como normalmente uno haría en una base de datos

Código PHP:
$sql="SELECT * FROM yourtable WHERE userpassword = '".trim($name)."'"
El propósito de trim() es eliminar los espacios que están antes y después en la información que estas buscando.
  #6 (permalink)  
Antiguo 24/05/2009, 21:12
 
Fecha de Ingreso: agosto-2008
Mensajes: 109
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Mostrar datos de una tabla (mysql)

Muchisimas gracias a todos, funciona a la perfeccion.
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 10:28.