2009-11-25 181 views
0

我有一個while循環遍歷一個表,並且我在其中回顯結果,我也有一個while循環查看圖像目錄,我可以輸出圖像的路徑。我的問題是我想在我的HTML和圖像標籤所在的其他while循環中輸出圖像路徑。我已經試過把一個while循環放在另一個while循環中,但是這個while while的一個結果會重複。如何在第一次while循環之外獲取圖像的變量,並將其放在另一個while循環中並進行回顯。while while while while loop while

更新我把它工作大家都告訴我,我只是緩慢的正確的事情。我修改了下面的表示抓取表單數據和插入表單數據的代碼,這是我需要做的。

由於

 /* 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"]; 

/------------------ INSERT INTO DATABASE ---- ------------------/

$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 />"; 
     } 
+0

如何表中的信息與圖像有關?如果兩者之間沒有直接的相關性,那麼有什麼方法可以將它們一起顯示出來? – 2009-11-25 23:52:18

+0

我想以某種方式將ID與圖像名稱相關聯,不知道如何呢? – 2009-11-26 00:04:14

+0

這是一個基本問題。如果您無法將圖像與表格中的每條記錄相關聯,則無法爲特定項目顯示圖像。您只能顯示可能與選定記錄相關或不相關的所有圖像或圖像。鏈接這兩者對於爲用戶提供有用的答案至關重要。 – 2009-11-26 06:41:27

回答

2

您需要從數據庫中查詢您的鞋號數據,然後針對您查詢的每一個鞋號數據,通過以圖像名稱或某些參數爲參數的函數請求匹配的圖像。

然後在該功能中,您可以遍歷所有圖像並找到與您鞋子相匹配的圖像。將該圖像$文件返回到您的數據庫查詢。

因此,在您的查詢循環中,調用哪個查詢(通過循環)圖像找到正確的圖像,匹配您剛剛用於數據庫的鞋號數據。

現在您可以回顯該$文件及其所有其他數據。

+0

好吧我會嘗試這個,我很新的PHP,所以我可能需要更多的解釋 – 2009-11-25 23:58:55

+0

我是否應該使用GET變量來抓取圖像名稱,我輸了。 – 2009-11-26 00:07:36

+0

數據庫中的數據如何與圖像相關聯?數據庫中應該有一個包含圖像名稱的字段,您可以像處理其餘數據一樣獲取字段,然後可以從結果集中獲取該圖像名稱並將其傳遞給該函數。 – 2009-11-26 00:18:13

2

正如指出的那樣,你需要指定應該使用哪個圖像這鞋在數據庫:

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

然後你就可以在你的主循環搶鞋圖像:

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

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

} 
+0

我唯一的問題是,在將來我打算構建一個上傳腳本,並且從未做過上傳圖像的過程中將圖像路徑上傳到數據庫表的地方。這就是爲什麼我有while循環來通過圖像目錄。 – 2009-11-26 00:13:54

+0

很簡單:上傳圖片後,將它移動到images /目錄,並用圖像文件名更新數據庫中的圖像路徑。 – leepowers 2009-11-26 00:24:25

+0

手動移動圖像,這看起來有失於上傳腳本的目的。 ftp會更快。我很困惑。 – 2009-11-26 00:28:05