Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/11/2013, 05:45
Avatar de paxarin
paxarin
 
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 3 meses
Puntos: 6
El buscador de mi web me repite la ultima imagen almacenada, por que?

Muy buenas.
Tengo un problemilla con un buscador que puse en la web.
La verdad que todabia me pierdo vastante en el mundo del php, pero vamos haciendo lo posible por ir aprendido.
Quiero que en el buscador de la web aparte de que muestre los resultados de la busqueda cuando los muestre tambien muestre una imagen.
Pero por algun motivo si consigo que suban a la tabla y se registre la ruta donde esta almacenada la imagen, pero surgen dos problemas apartir de aqui.
La estructura de mi tabla es la siguiente
  • 1 id int(11) AUTO_INCREMENT
  • 2 titulo varchar(50) utf8_spanish_ci
  • 3 url varchar(100) utf8_spanish_ci
  • 4 descripcion varchar(150) utf8_spanish_ci
  • 5 image varchar(60) utf8_spanish_ci
Este es el php para insertar en la bbdd
Código PHP:
Ver original
  1. <?php
  2. include("includes/conexion.php");
  3.        
  4.         $imagen=$_FILES["imagen"];
  5.         $nombre=$_FILES["imagen"]["name"];
  6.         $archivo="foto/".$nombre;
  7.         $nombre=$nombre;
  8.         while(file_exists($archivo))
  9.         {
  10.         mt_srand(time());
  11.         $numero = mt_rand(0,1000);
  12.         $aux=explode(".",$nombre); //usamos el punto ya que la cadena de la imagen sera nombre.jpg
  13.         $tamano= sizeof($aux);
  14.         $extension=$aux[$tamano-1]; // coje la extension de la imagen (jpg, png, gif)
  15.         $pos=0;
  16.         $nombre="";
  17.         while($pos<$tamano-1)
  18.         {
  19.             $nombre.=$aux[$pos];
  20.             $pos=$pos+1;
  21.         }
  22.         $nombre=$nombre.$numero.".".$extension;
  23.         $archivo="foto/".$nombre;
  24.     }
  25.         $nombre=$nombre;
  26.     if(move_uploaded_file($imagen["tmp_name"], "foto/".$nombre))
  27.     {
  28.         mysql_query("INSERT INTO buscador (titulo,url,descripcion,image)
  29.        VALUES ('{$_POST['titulo']}','{$_POST['url']}','{$_POST['descripcion']}','{$archivo}')",$conexion);
  30.        }    else{
  31.            $conexion;
  32.             header("location:ver-busqueda.php");
  33.             }
  34. ?>
1º Cuando voy a la pagina donde se muestran todos los resultados guardados aparece la información de forma correcta pero en el campo imagen se repite la ultima imagen subida en todas las busquedas.
Código PHP:
Ver original
  1. <?php
  2.            $rst_busqueda=mysql_query("SELECT * FROM buscador ORDER BY titulo",$conexion);
  3.            $fila=mysql_fetch_assoc($rst_busqueda);
  4.            $src=$fila['image'];
  5.            $num_registros=mysql_num_rows($rst_busqueda);
  6.            
  7.                if ($num_registros==0)
  8.             {
  9.                     echo "No existen productos para mostrar";
  10.                     mysql_close($conexion);
  11.                     exit();
  12.             }
  13.            
  14.             ?>
  15.            <table border="0" cellpadding="0" cellspacing="0" class="tabla">
  16.                 <tr>
  17.                     <th>Titulo</td>
  18.                     <th>Url</td>
  19.                     <th>Descripción</td>
  20.                     <th>Foto producto</td>
  21.                 </tr>
  22.                 <?php
  23.                                 while ($fila=mysql_fetch_array($rst_busqueda))
  24.                                 {
  25.                 ?>
  26.                 <tr class="modo1">
  27.                     <th><?php echo $fila ["titulo"];?></td>
  28.                     <th><?php echo $fila ["url"];?></td>
  29.                     <th><?php echo $fila ["descripcion"];?></td>
  30.                     <th><?php echo "<img src=".$src." />"?></td>
  31.                    
  32.                 </tr>
  33.                <?php
  34.                                 }
  35.                 ?>
Cosa que no entiendo ya que cada articulo de la busqueda tiene su ruta correctamente almacenada.
Y la segunda parte es esta, que la parte que hace que se muestren las busquedas realizadas.
La información nuevamente se vuelca correctamente pero me aparece un
Notice: Undefined index: image in C:\xampp\htdocs\buscador\resultados.php y como es logico la imagen no se muestra.
Código PHP:
Ver original
  1. <?php
  2.                     if(!empty($totalRows)){
  3.                          
  4.                         echo stripslashes("<p class='white'>Su b&uacute;squeda arroj&oacute; los <strong><span>$totalRows</span></strong>  siguientes resultados para <strong><span>$frase</span></strong></p>");
  5.                         // mostramos los resultados
  6.                         while($row = mysql_fetch_array($sqlBuscar)){
  7.                             echo "<p><strong><a href='#' class='link'>$row[titulo]</a></strong></p><br />";
  8.                             echo "<a href='".substr(strip_tags($row['url']), 0, 255)."' class='white2' >Visitar la pagina</a>";
  9.                             echo "<img src=".$row['image']." class='centrar'> <br>";
  10.                             //echo "<a href=''>".substr(strip_tags($row['url']), 0, 255)."...</a>";
  11.                             echo "<p class='gris'>Descripción de la información: ".substr(strip_tags($row['descripcion']), 0, 255)."...</p>";
  12.                             echo "<p><img src='img/sep.png' alt='sep'/></p>";
  13.                         }
  14.                     }
  15.                     // si se ha enviado vacio el formulario
  16.                     // mostramos un mensaje del tipo Oops...!
  17.                     elseif(empty($_GET['frase'])){
  18.                         echo "<p class='white'><span>¡¡ATENCIÓN!!</span> Debe introducir una palabra o frase.</p>";
  19.                     }
  20.                     // si no hay resultados //
  21.                     //otro mensaje del tipo Oops...!
  22.                     elseif($totalRows == 0){
  23.                         echo stripslashes("<p class='white'><span>¡¡ATENCIÓN!!</span> Su busqueda no arrojo resultados para <strong>$frase</strong></p>");
  24.                     }
  25.                 ?>
Alguien puede ayudarme a saber y comprender el por que me pasa esto?
Muchas gracias de antemano.
__________________
http://www.paxarindesign.es