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

Cita:
Iniciado por marlanga Ver Mensaje
-El objeto mysql está obsoleto. no tiene soporte desde hace años. Usa en su lugar mysqli, que es muy parecido, o PDO.
-No hagas inserciones directas en SQL de las variables que te llegan por $_POST, sanitízalas antes con mysqli_real_escape_string.
-En el código del medio haces un fehct_assoc, para sacar la primera fila, y de ella, coger la url. Y luego en el bucle while de más abajo donde haces fetch_array (que para el uso que le das no es necesairo, mejor otra vez fetch_assoc) imprimes los datos de la nueva imagen pero pones la URL que tenías almacenada de antes (que no sé por qué la almacenas, no hace falta).

-El segundo error te está diciendo que $row["image"] no existe.
Ya modifique el mysql_query por mysqli_query como me indicaste
Tambien cambie las inserciones ahora las tengo así:
Código PHP:
Ver original
  1. $titulo=mysqli_real_escape_string($_POST["titulo"]);
  2.         $url=mysqli_real_escape_string($_POST["url"]);
  3.         $descripcion=mysqli_real_escape_string($_POST["descripcion"]);
Con lo cual el php para la inserción de las busquedas quedo así
Código PHP:
Ver original
  1. <?php
  2. include("includes/conexion.php");
  3.         $titulo=mysqli_real_escape_string($_POST["titulo"]);
  4.         $url=mysqli_real_escape_string($_POST["url"]);
  5.         $descripcion=mysqli_real_escape_string($_POST["descripcion"]);
  6.    
  7.        
  8.         $imagen=$_FILES["imagen"];
  9.         $nombre=$_FILES["imagen"]["name"];
  10.         $archivo="foto/".$nombre;
  11.         $nombre=$nombre;
  12.         while(file_exists($archivo))
  13.         {
  14.         mt_srand(time());
  15.         $numero = mt_rand(0,1000);
  16.         $aux=explode(".",$nombre); //usamos el punto ya que la cadena de la imagen sera nombre.jpg
  17.         $tamano= sizeof($aux);
  18.         $extension=$aux[$tamano-1]; // coje la extension de la imagen (jpg, png, gif)
  19.         $pos=0;
  20.         $nombre="";
  21.         while($pos<$tamano-1)
  22.         {
  23.             $nombre.=$aux[$pos];
  24.             $pos=$pos+1;
  25.         }
  26.         $nombre=$nombre.$numero.".".$extension;
  27.         $archivo="foto/".$nombre;
  28.     }
  29.         $nombre=$nombre;
  30.     if(move_uploaded_file($imagen["tmp_name"], "foto/".$nombre))
  31.     {
  32.         mysqli_query("INSERT INTO buscador (titulo,url,descripcion,image)
  33.        VALUES ('{$titulo}','{$url}','{$descripcion}','{$archivo}')",$conexion);
  34.         header("location:ver-busqueda.php");
  35.     }
  36.     else{
  37.         echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno($conexion) ." - ".mysql_error();
  38.             mysql_close($conexion);
  39.         }
  40.  
  41. ?>
LO que no acabo de enter es lo que me comentas de como sacar la imagen que esta almacenada en la fila sobre la cual realizo la consulta.
Este es el php para mostrar
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_assoc($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.                 ?>
Y uso <th><?php echo "<img src=".$src." />"?></td> esta linea para decirle la ruta donde esta alojada la imagen que me tiene que poner con la busqueda.
Puedes explicarme un poco más esto por favor?
__________________
http://www.paxarindesign.es