BUscador de dato e imagen

Tengo un buscador mediante el cual por id encuentra por datos y por imágenes funciona pero el problema que tengo es que tarda en encontrar los datos es decir si pongo por id y le doy buscar no muestra nada, me regreso pongo otro id pasa lo mismo y no es hasta el tercer intento que pongo el primer id y me encuentra las imágenes y los datos en lo personal soy nuevo en esto de la programación quisiera saber si es correcta mi programación y cual es la causa de que el buscador no encuentre los datos a la primera
Utilizo 2 tablas que son finiquito e imágenes pero nunca las relaciono hago consultas independientes para obtener tanto imágenes como datos.
Se podría decir que la caja1 es la que relaciona el id de ambas tablas
¿Intente unirlas solo que me marca error de sintaxis
<?php
//ESTA PARTE MUESTRA LOS DATOS CORRESPONDIENTES AL ID
echo "
<p>";
$conec1=mysql_connect("10.33.143.3","tacopnet_root","y+y-u*u/");
$c=$_POST['caja1'];
$result1=mysql_db_query("tacopnet_tacop","select A1,A10,A11,A12,A13,A14,A15,A18,A19,A32 from   finiquito where A66  LIKE '%{$c}%' ",$conec1);
while ($row1=mysql_fetch_array($result1))
{
echo "
<table border='1' cellspacing='2' cellpadding='6'>
";
echo "
<tr>
";
echo "<th>";
echo "Numero de Folio";
echo "</th>";
echo "<th>";
echo "Nombre";
echo "</th>";
echo "<th>";
echo "Domicilio";
echo "</th>";
echo "<th>";
echo "Colonia";
echo "</th>";
echo "<th>";
echo "Fecha de Inicio";
echo "</th>";
echo "<th>";
echo "Fecha de Terminacion";
echo "</th>";
echo "<th>";
echo "Asesor Tecnico";
echo "</th>";
echo "
</tr>
";
echo "
<tr>
";
echo "
<td>";
echo " ".$row1['A1']. " ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A10']." ";
echo " ".$row1['A11']." ";
echo " ".$row1['A12']." ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A13']." ";
echo " ".$row1['A14']." ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A15']." ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A18']." ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A19']." ";
echo "</td>
";
echo "
<td>";
echo " ".$row1['A32']." ";
echo "</td>
";
echo "
</tr>
";
echo "
</table>
";
}
//ESTA PARTE BUSCA LA IMAGEN RELACINADA CON EL ID EN LA TABLA IMAGENES
mysql_free_result($result1);
mysql_close($conec1);
$conec=mysql_connect("10.33.143.3","tacopnet_root","y+y-u*u/");
$result=mysql_db_query("tacopnet_tacop","select * from  imagenes   where A66  LIKE '%{$c}%' ",$conec);
//Mostramos los registros
$ids = array("1","2");
while ($row=mysql_fetch_assoc($result))
{
echo '<img src="'.$row['ruta'].'" width="50%" height="50%">';
echo '</img>';
$ids[0]=$row['A66'];
$ids[1]=$row['A66'];
}
mysql_free_result($result);
mysql_close($conec);
?>
//ENVIA A PDF
<?
echo "<FORM method='post'  action='reportepdf.php' target='jose' onsubmit='jose = window.open(this.action , 'jose' , 'width=2000,height=2000')'>";
echo "<input type='submit' name='submit' value='Obtener Pdf'>";
echo "<input type='hidden' name='A66' id='A66' value='$c' />";
//MUESTRA LAS IMAGENES QUE EN ESTA CASO SON 2 MAXIMO
foreach ( $ids as $idimg)
{
echo "
<table border='1' cellspacing='2' cellpadding='6'>
";
echo "
<tr>
";
echo "<th>";
   echo "<input type='text' name='ruta[]' value='$idimg' />";  //aca genero tantos hidden como imagenes haya
 echo "</th>";
echo "
</tr>
";
echo "
</table>
";
  echo "</FORM>";
  }
?>
Este es el formulario del buscador
<form action="consu.php" method ="post">
<BR><BR><BR>
<center>
<h1>Consulta Fotos de Acreditado</h1>
<br>
</center>
<center>
<table border=5>
<tr>
<td>ID Acreditado</td>
<td><input name="caja1" size="18" value= " "></td>
</tr>
<TR>
<TD><input type=SUBMIT name=BOTON2 value ="Consultar"></TD>
<TD><input type=RESET name=BOTON1 value ="Borrar"></TD>
</TR>
</table>
</center>
</form>

1 Respuesta

Respuesta
1
Para comprobar si la consulta llega como tiene que llegar a la BD, muestra por pantalla la consulta:
("tacopnet_tacop","select * from  imagenes   where A66  LIKE '%{$c}%' ",$conec);
Cada vez, y así comprobaras que datos le están llegando. Es una forma muy práctica de debugear tu código y así verás cual es la consulta y por que no está dando los resultados.
Muchas GRacias caballero por tomarse la molestia de contestar, solo una duda com hago eso de mostrar por pantalla la consulta al verdad nunca lo he hecho o nadie me lo ha explicado disculpe las molestias y saludos
Por ejemplo:
$result=mysql_db_query("tacopnet_tacop","select * from  imagenes   where A66  LIKE '%{$c}%' ",$conec);
pones
echo "select * from  imagenes   where A66  LIKE '%{$c}%"
Y así verás qué es lo que pone en $c... aunque yo utilizaría esto:
echo "select * from  imagenes   where A66  LIKE '%". $c."%
No se porque usas los corchetes...¿?
Por lo que he visto se utilizan para liberar la variable aunque veo que los puntos y las comillas que utiliza hacen lo mismo.
Me imprimió la consulta y el valor del id que es 3 lo raro sigue por que no muestra las 2 imágenes y los datos me regreso y quiero buscar el mismo id y me sigue sin mostrar nada, pongo otro id que solo tiene datos y los muestra, me regreso y pongo id 3 en el buscador y por fin encuentra las 2 imágenes y los datos
Por lo que se ve en la consulta esta enviando bien el id desde la caja pero le cuesta trabajo encontrar las imagenes y los datos a la primera
select * from imagenes where A66 LIKE '% 3%
Que me recomiendo gentil caballero
Saludos
Fíjate en la consulta, para empezar, falta una comilla al final, suponiendo que sea un campo de tipo texto... ¿lo es?
select * from imagenes where A66 LIKE '% 3%
Perfecto si lo puse de esta manera
echo "select * from  imagenes   where A66  LIKE '%".$c."% ' ";
y me imprime  esto
select * from imagenes where A66 LIKE '% 3%
Claro varia el numero dependiendo de el que se introduzca en el buscador
Te imprimirá algo como esto, digo yo:
select * from imagenes where A66 LIKE '%3%'
Es decir, sin el espacio antes del 3 y con la comilla al final, ¿no?
Ok, prueba esa consulta en la BD a través de phpmyadmin u otra aplicación y a ver qué te sale.
ok gracias si me imprime la comilla pero me da un espacio hacia adelante sera un error de sintaxis
select * from imagenes where A66 LIKE '% 3% '
Este es el código de la consulta y de como la imprime
$result=mysql_db_query("tacopnet_tacop","select * from  imagenes   where A66  LIKE '%".$c."%' ",$conec);
//Mostramos los registros
echo "select * from  imagenes   where A66  LIKE '%".$c."% ' ";
______________________________________________________________________
select * from imagenes where A66 LIKE '% 3% ';
OK de esta forma me dice que me ha devuelto un valor vacio
__________________________________________________________________________
select * from imagenes where A66 LIKE '%3% ';
De esta forma me muestra correcto la consulta sin valores vacíos
¿Entonces lo tienes claro?, revisa el query para eliminar ese espacio con trim($c)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas