Consultas especificas en php

Yo tengo un código así
<?php
include("Conectarse.PHP");
mysql_select_db("TANQUES");
$link=Conectarse();
$equipo = $_POST['equipo'];
$resultado = mysql_query("SELECT * FROM Autotanque where equipo='$equipo'")or die (mysql_error());
$row = mysql_fetch_array($resultado);
$EQUIPO = $row['EQUIPO'];
$PLACA = $row['PLACA'];
$ANIO = $row['ANIO'];
$MARCA = $row['MARCA'];
$CAPACIDAD = $row['CAPACIDAD'];
echo ("
<p>EQUIPO: " . $FILA['equipo'] . "<br /></p>
");
echo ("PLACA: " . $FILA['placa'] . "<br /></p>
");
echo ("AÑO: " . $FILA['anio'] . "<br /></p>
");
echo ("MARCA: " . $FILA['marca'] . "<br /></p>
");
echo ("MODELO: " . $FILA['modelo'] . "<br /></p>
");
echo ("CAPACIDAD: " . $FILA['capacidad'] . "<br /></p>
");
Al hacer la consulta o búsqueda de algo en particular me saca toda la información de todo lo que tengo

1 respuesta

Respuesta
El código que indicas sólo muestra 1 registro, el primero que encuentra y coincide con "equipo", revisa bien, porque no es lógico que te muestre todo, no hay ningún bucle que pueda hacer tal cosa, revisa también esto: include("Conectarse.PHP"); que no haga nada que no sea lo que esperas.
Confirma que el código que tienes en el server es el que tú supones, quizá tengas una versión anterior y eso es lo que retorna los resultados.
mysql_select_db("TANQUES"); esto ya lo quite
include("Conectarse.PHP"); lo que hace es que conecta a mi base de datos
lo único que me muestra es la impresión de echo y no me muestra los datos que tiene guardados
Gracias
Ánade esto para confirmar que el script recibe correctamente la petición:
$equipo = $_POST['equipo'];
Echo $equipo; // debería imprimir el valor de equipo que pasas como consulta
Si no lo imprime habría que revisar el formulario y el paso de variables.
<?php
include("Conectarse.PHP");
$link=Conectarse();
$equipo = $_POST['equipo'];
$resultado = mysql_query("SELECT * FROM Autotanque where equipo='$equipo'");
$row = mysql_fetch_array($resultado);
$equipo = $row['equipo'];
$placa = $row['placa'];
$anio = $row['anio'];
$marca=$row['marca'];
$modelo = $row['modelo'];
$capacidad = $row['capacidad'];
echo ("
<p>EQUIPO: " . $FILA['equipo'] . "<br /></p>
");
echo ("PLACA: " . $FILA['placa'] . "<br /></p>
");
echo ("AÑO: " . $FILA['anio'] . "<br /></p>
");
echo ("MARCA: " . $FILA['marca'] . "<br /></p>
");
echo ("MODELO: " . $FILA['modelo'] . "<br /></p>
");
echo ("CAPACIDAD: " . $FILA['capacidad'] . "<br /></p>
");
?>
¿Bueno elo que me pusiste si lo tiene y lo único que me manda es lo que imprime echo no me manda la información porque?
Cambia estas dos lineas -->
echo("
<p>EQUIPO: " . $FILA['equipo'] . "<br /></p>
");
echo ("PLACA: " . $FILA['placa'] . "<br /></p>
");
Por esto otro a ver que tal:
echo ("
<p>EQUIPO: " . $equipo . "<br /></p>
");
echo ("PLACA: " . $placa . "<br /></p>
");
Ya cambie lo que me pediste solo a esas dos pero lo que imprime es lo siguiente:
EQUIPO:equipo
hi oye tengo una duda con lo siguiente
$resultado = mysql_query("SELECT * FROM verifi where equipo LIKE '%$equipo%'");
Si me saca la inf de todo pero el problema es que solo me saca el del primero si yo pongo un equipo diferente me saca el mismo
Gracias
Eso es porque no recorres los registros, tomas el primero y siempre muestra el mismo.
Intenta cambiando esto:
$link=Conectarse();
$equipo = $_POST['equipo'];
Por esto:
$link=Conectarse();
foreach($_POST as $key => $value) {${$key} = $value;}
Ahora $equipo debería contener el valor correcto de todas todas.
Si dejas el like te va a mostrar siempre el primero, deja equipo = '$equipo' a ver si te muestra el registro concreto, recuerda que debes escribirlo igual que está en la base de datos, like es para registros parecidos, pero o recorres el array de resultados para mostrar todos los registros o sólo te va a mostrar el primer elemento encontrado!
No me sigue mostrando el mismo el primero
$link=Conectarse();
foreach($_POST as $key => $value) {${$key} = $value;}
$resultado = mysql_query("SELECT * FROM verifi where equipo LIKE '%$equipo%'");
$row = mysql_fetch_array($resultado);
$resultado = mysql_query("SELECT * FROM verifi where equipo = '$equipo' ");
¿Pero has cambiado lo que te estoy diciendo? ¿Me mandas el mismo código una y otra vez cómo no va a dar lo mismo?
Modifica el select quitando el Like con la sentencia que te he mandado y prueba, si el registro que buscas es el primero pues te va a mostrar ese por cachavas, intenta buscando el que sepas que es el ultimo en la db.
ya lo cambie y ya no me sale nada de informacion
include("Conectarse.PHP");
$link=Conectarse();
foreach($_POST as $key => $value) {${$key} = $value;}
$resultado = mysql_query("SELECT * FROM Autotanque where equipo = '$equipo' ");
$row = mysql_fetch_array($resultado);
Eso implica que no encuentra nada de nada, inserta detrás de:
foreach($_POST as $key => $value) {${$key} = $value;}
inserta esto -->
Echo "el valor de equipo es [". $equipo. "]"; 
Debería imprimir el contenido del campo equipo introducido en el formulario que llama a este script, si no lo muestra hay algún problema con el formulario.
Me imprime esto:
El valor de equipo es []
include("Conectarse.PHP");
$link=Conectarse();
foreach($_POST as $key => $value) {${$key} = $value;}
echo "el valor de equipo es [".$equipo."]";
$resultado = mysql_query("SELECT * FROM Autotanque where equipo = '$equipo' ");
$row = mysql_fetch_array($resultado);
no me saca nada y si tiene insertado
esta es mi tabla
create table Autotanque(
equipo       int (6) not null,
placa        varchar (9) not null,
anio         int (4) not null,
marca        varchar (15) not null,
modelo       varchar (20) not null,
capacidad    int (5) not null);
alter table Autotanque add primary key (equipo);
Añade junto a la linea $_POST e intenta de nuevo
foreach($_GET AS $key => $value)  {${$key} = $value;}
Sigue sin mostrarme nada
foreach($_GET AS $key => $value)  {${$key} = $value;}
echo "el valor de equipo es [".$equipo."]";
$resultado = mysql_query("SELECT * FROM Autotanque where equipo = '$equipo'");
$row = mysql_fetch_array($resultado);
Gracias
¿Puedes postear el código del formulario?
<html>
<BODY BACKGROUND="fondo2.jpg">
<?php
include("Conectarse.PHP");
$link=Conectarse();
$equipo = $_POST['equipo'];
$resultado = mysql_query ("SELECT * FROM autotanque where equipo='$equipo'",$link);
$row = mysql_fetch_array($resultado);
$equipo = $row['equipo'];
$placa = $row['placa'];
$anio = $row['anio'];
$marca=$row['marca'];
$modelo = $row['modelo'];
$capacidad = $row['capacidad'];
echo "<br>Equipo: $equipo<br>";
echo "<br>Placa: $placa<br>";
echo "<br>Año: $anio<br>";
echo "<br>Modelo: $modelo<br>";
echo "<br>Capacidad: $capacidad<br>";
?>
<center>
  <input type="button" value="Anterior" onClick="history.go(-1)">
<input type="button" name="imprimir" value="Imprimir" onClick="window.print();">
</center>
</body>
</html>
Gracias
Aquí hay algo que no cuadra, tienes que mandar en alguna parte el equipo que quieres buscar, salvo que quieras un listado de todos los elementos aquí no va a buscar nada, no pasas a equipo ningún valor. ¿Seguro qué no hay ningún formulario donde escribes un valor y luego al pulsar buscar o lo que sea, llamas a este script?
Este es mi formulario y mando a llamar al de arriba para buscar
<HTML>
<HEAD>
<meta http-equiv="Page-Enter" content="revealTrans(Duration=3.0,Transition=3)">
<meta http-equiv="Page-Exit" content="revealTrans(Duration=3.0,Transition=3)">
</HEAD>
<BODY>
<form name="AUTOTANQUE" action="http://localhost/TANQUES/bbus_at.PHP" METHOD="POST">
 <P align="center"><font color="BLUE" size="6" face="Courier New, Courier, monospace"><strong><font color="#0000FF">
        <font color="#FFFFFF" face="Georgia, Times New Roman, Times, serif"> <U> BUSCAR AUTO/TANQUE POR EQUIPO </U></font></font></strong></font>
   <font face="Georgia, Times New Roman, Times, serif"></font></P>
<br>
<tr>
<td >
           <font color="#FFFFFF"><center>EQUIPO</center></font></td>
<td ><center><input onKeyUp="AUTOTANQUE.EQUIPO.value=AUTOTANQUE.EQUIPO.value.toUpperCase();type="text" name="AUTOTANQUE.EQUIPO" SIZE=6 MAXLENGTH=6 tabindex="1"></center></td>
<table border="0" >
</table>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p><center>
  <input type="submit" value="BUSCAR" name="B1" > </center></p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</form>
</body>
</HTML>
Gracias
ok, en el fichero PHP cambia $equipo = $_POST['equipo'];
por $equipo = $_POST['AUTOTANQUE.EQUIPO']; que es como llamas al input en el formulario html, con eso el script debería recuperar el valor correcto y funcionar todo lo demás.
hi mira como te muestro el código ya me muestra los datos pero solo me muestra el primero que tengo guardado aunque e meta el equipo que sea
<html>
<BODY>
<?php
include("Conectarse.PHP");
$link=Conectarse();
$equipo = $_POST['Autotanque.equipo'];
$resultado = mysql_query("SELECT * FROM  Autotanque where equipo LIKE '%$equipo%'");
$row = mysql_fetch_array($resultado);
$equipo = $row['equipo'];
$placa = $row['placa'];
$anio = $row['anio'];
$marca=$row['marca'];
$modelo = $row['modelo'];
$capacidad = $row['capacidad'];
echo "<br>Equipo: $equipo<br>";
echo "<br>Placa: $placa<br>";
echo "<br>Año: $anio<br>";
echo "<br>Modelo: $modelo<br>";
echo "<br>Capacidad: $capacidad<br>";
?>
</body>
</html>
Pero ya me muestra algo gracias
Usas equipo LIKE '%$equipo%' lo que vas a conseguir con eso es que localice "algo" parecido a lo que escribas en equipo, si lo que quieres es que lo localice exacto, cambia por esto otro:
equipo = '$equipo' entonces sólo te mostrará resultados cuando sea igual.
Por otro lado, tú programa sólo mostrará un equipo por consulta, ¿es lo que pretendes? O ¿Necesitas mostrar varios a la vez? Por ejemplo, como hacías al principio: mostrar todos lo que sean parecidos a X.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas