2013-07-01 194 views
1

我有一個畫廊腳本,作爲一個新手,我成功地創建了縮略圖。我可以點擊縮略圖來獲取大圖片,但是當我按下'下一張'查看下一張圖片時,我收到一張'零'圖片,發現消息。這個圖庫作爲主鍵在'photo_caption'上運行。在PHP中創建鏈接

這裏是代碼位我有麻煩......

$result_final .= "<div class='prevnext'>"; 
      $result_final .= "<span class='prev'><a href=viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$next])."><img src=photos/assets/left.png border=0 ></a></span>"; 
      $result_final .= "<span class='next'><a href=viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$prev])."><img src=photos/assets/right.png border=0 ></a></span>"; 
      $result_final .= "</div>"; 

這裏的「左」和「右」箭頭創建的,但是當我點擊它們就不會帶我去下一張照片。如果我嘗試打印$nr(對應於被點擊的photo_caption的行數,等於'1'),當我點擊下一個圖像的'next'箭頭時,它變爲'0'。這是因爲鏈接不工作?你能檢查我的代碼,看看我在創建鏈接時是否犯了一些愚蠢的錯誤嗎?請參閱以下部分的完整代碼。

if($pcaption) 
    { 

     $result = mysql_query("SELECT photo_caption, photo_description, photo_filename,photo_keywords FROM gallery_photos WHERE photo_caption='".addslashes($pcaption)."'"); 

     list($photo_caption, $photo_description, $photo_filename, $photo_keywords) = mysql_fetch_array($result); 

     $nr = mysql_num_rows($result); 
     mysql_free_result($result);  

     $p_caption = $photo_caption; 
     $p_description = $photo_description; 
     $p_keywords = $photo_keywords; 

     //fill pid_array with sorted pids in current category 

     $result = mysql_query("SELECT photo_caption FROM gallery_photos WHERE category_name='".addslashes($cname)."' ORDER BY photo_caption"); 

     $ct = mysql_num_rows($result);  

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

       $pid_array[] = $row[0]; 
     } 
     mysql_free_result($result); 

     #if(empty($nr)) 
     if($nr <0) 
     { 

      $result_final = "\t<tr><td>***No Photo found</td></tr>\n"; 
     } 
     else 
     { 
      $result = mysql_query("SELECT category_name FROM gallery_category WHERE category_name='".addslashes($cname)."'"); 
      list($category_name) = mysql_fetch_array($result); 
      mysql_free_result($result);  
      $result_final = " 
      <div class=limagePage> 
      <div class=llink><a href=viewgallery.php>ALBUMS</a><span class=arrow>&gt;&gt</span><a href=viewgallery.php?cname=$cname>$category_name</a></div> 
      "; 
      // display previous and next links if more than one photo 

      if ($ct > 1) 
      { 

       $key = array_search($pcaption , $pid_array); 
       $prev = $key - 1; 

       if ($prev < 0) $prev = $ct - 1; 
       $next = $key + 1; 

       if ($next == $ct) $next = 0; 

       $cname = str_replace(" ","_",$cname); 
       $pcaption=str_replace(" ","_",$pcaption); 

       $result_final .= "<div class='prevnext'>"; 
       $result_final .= "<span class='prev'><a href=viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$next])."><img src=photos/assets/left.png border=0 ></a></span>"; 
       $result_final .= "<span class='next'><a href=viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$prev])."><img src=photos/assets/right.png border=0 ></a></span>"; 
       $result_final .= "</div>"; 

      }    
     } 
     $cname = str_replace(" ","_",$cname); 
     $pcaption=str_replace(" ","_",$pcaption); 
     $result_final .= "<div class=limage><table><tr><td><table class=image><tr>\n\t<td><a href=viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$next])."><img src='".$images_dir."/".$photo_filename."' border='0' alt='".$photo_keywords."' /></a> 
     <div class=caption>".$photo_caption."</div> 
     <div class='excerpt'>".$photo_description."</div> 
     </td>      
     </tr></table></td></tr></table><div class=underline></div></div> 
     <!-- .limagePage --></div> "; 

} 
+0

將鼠標懸停在鏈接,看到的鏈接怎麼說。您也可以使用「查看源代碼」來驗證鏈接應該在哪裏。如果沒有,它可以幫助你(或我們)弄清楚什麼是錯的。 – Herbert

回答

2

你的HTML被搞砸了,這可能是問題,嘗試把'suround你的HTML標籤的值,如:

<a href='viewgallery.php?cname=$cname&pcaption=".str_replace(" ","_",$pid_array[$prev])."'><img src='photos/assets/right.png' border='0'></a> 
+0

謝謝netsetter ..我現在糾正了我的HTML,但它仍然沒有解決問題。 – yathrakaaran

+0

如果在瀏覽器中手動輸入'viewgallery.php?cname = Simple_Expressions&pcaption = Waiting_Sunset',會發生什麼?你有錯誤信息或只是看錯照片?以及在點擊下一個/上一個按鈕之前,您看到的照片的URI如何顯示? – 2013-07-01 02:41:32

+1

Netsetter ...你的答案和從鏈接中刪除'str_replace()'的組合有助於解決這個問題! :-)我的HTML被搞亂了,就像你說的。所以我的墨水全部混亂起來,因此我添加了'str_replace()',但是刪除並清理了我的HTML文件,並做出了最終的魔術......所以,謝謝netsetter.I希望我可以爲您的答案投票...我是新來的並沒有足夠的聲譽去做!瘋..! – yathrakaaran