Pregunta

Tengo un ciclo while que atraviesa una tabla y hago eco de los resultados dentro de ella, también tengo un ciclo while que mira un directorio de imágenes y puedo mostrar las rutas a las imágenes. Mi problema es que quiero generar la ruta de la imagen en el otro ciclo while donde residen mi html y mi etiqueta de imagen. He intentado poner un bucle while dentro del otro, pero uno de los resultados para el tiempo en el tiempo se repite. ¿Cómo puedo tomar la variable fuera del primer ciclo while para imágenes y ponerla dentro del otro ciclo while y repetirla?

ACTUALIZACIÓN LO PODÉ TRABAJAR todos me decían lo correcto, soy lento. Modifiqué el código a continuación donde dice que tomar datos del formulario e insertar datos del formulario, es lo que necesitaba hacer.

Gracias

        /* LOOP THROUGH IMAGES */
        $myDir = dir("images/");
        while(($file = $myDir->read()) !==false){

            if(!is_dir($file)){

            echo "$file";

            }
        }/*SHOE IMAGE WHILE LOOP ENDS*/


        /* LOOP THROUGH SHOEDATA TABLE */

        $results = mysql_query("SELECT * FROM shoeData");


        while($row = mysql_fetch_array($results)){

        $name = $row['name'];
        $about = $row['about'];
        $company = $row['company'];
        $buy = $row['buy'];
        $tags = $row['tags'];
        $id = $row['id'];



        /* ECHO THE SHOEDATA RESULTS */     

            echo "<div class='span-8'>";


                echo "<ul>";
                    echo "<li>$name</l1>";
                    echo "<li>$about</l1>";
                    echo "<li>$company</l1>";
                    echo "<li><a href='$buy'>BUY</a></l1>";
                    echo "<li>$tags</l1>";
                echo "</ul>";




            echo "</div>";





        }/*SHOEDATA WHILE LOOP ENDS */

-----------------------UPLOAD SCRIPT UPDATE----------------------

Currently My upload script will move my files but their is nothing currently inputting a field into my database, how would I modify this script to also upload a link to my images in the table with


    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/png")
    || ($_FILES["file"]["type"] == "image/pjpeg"))
    && ($_FILES["file"]["size"] < 2000000))
      {
      if ($_FILES["file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
      else
        {
        echo "Upload: " . $_FILES["file"]["name"] . "<br />";
        echo "Type: " . $_FILES["file"]["type"] . "<br />";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

/ ------------------ GRAB FORM DATA ---------------------- ------- /

    $name = $_POST['name'];
    $about = $_POST['about'];

    $company = $_POST['company'];
    $buy = $_POST['buy'];
    $tags = $_POST['tags'];
    $imageName1 = $_FILES["file"]["name"];

/ ------------------ INSERTAR EN LA BASE DE DATOS ---------------------- /

$sql = "INSERT INTO shoeData (name,about,company,buy,tags,image)VALUES(
\"$name\",
\"$about\",
\"$company\",
\"$buy\",
\"$tags\",
\"$imageName1\"
)";

$results = mysql_query($sql)or die(mysql_error());

        if (file_exists("images/" . $_FILES["file"]["name"]))
          {
          echo $_FILES["file"]["name"] . " already exists. ";
          }
        else
          {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "images/" . $_FILES["file"]["name"]);



          echo "Stored in: " . "images/" . $_FILES["file"]["name"];

        }
      }
    else
      {
      echo "Invalid file" . "<br/>";
      echo "Type: " . $_FILES["file"]["type"] . "<br />";
      }
¿Fue útil?

Solución

Debe consultar los datos de su zapato desde la base de datos y luego, para cada uno de estos que haya consultado, solicite la imagen coincidente a través de una función que tome el nombre de la imagen o algo como parámetro.

Luego, en esa función, puede recorrer todas sus imágenes y encontrar la que coincida con el zapato que tiene. Devuelva ese archivo de imagen $ a su consulta de base de datos.

Entonces, dentro de su bucle de consulta, llame a la función que consulta (recorre) las imágenes para encontrar la imagen correcta, haciendo coincidir los datos del zapato que acaba de usar para su base de datos.

Ahora puede hacer eco de ese archivo $ y todos sus otros datos.

Otros consejos

Como se señaló, debe especificar qué imagen se debe usar para cada zapato en la base de datos:

ALTER TABLE shoeData ADD COLUMN image VARCHAR(256);
UPDATE shoeData set image='path/to/image.jpg' WHERE id=1;

Luego puedes tomar la imagen del zapato en tu bucle principal:

while($row = mysql_fetch_array($results)){
 $image = $row['image'];
 printf('<img src="/images/%s" alt="" />', htmlentities($row['image']));

 ....
 Rest of the loop
 ....

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top