2016-02-17 106 views
0

如果有一定的正確結果,我需要回顯一個下載按鈕,但是當我回顯下載按鈕時,它決定回顯多於1.我該如何糾正? 繼承人我的代碼:PDO回聲重複結果

<?php 
    $u = $_SESSION["username"]; 

    $getscripts = $conn->prepare("SELECT * FROM project_sa"); 
    $getscripts->execute(); 
    while ($row = $getscripts->fetch(PDO::FETCH_BOTH)) { 

     $sec = $conn->query('SELECT * FROM us WHERE username="wafflezzz"'); 
     $sec->execute(); 

     while ($rowx = $sec->fetch(PDO::FETCH_BOTH)) { 
      $checker = $rowx[$row["script_title"]]; 
      if ($checker == $row["script_title"]) { 

       $geturl = $conn->prepare("SELECT * FROM project_sa WHERE script_title='$checker'"); 
       $geturl->execute(); 
       while ($row = $geturl->fetch(PDO::FETCH_BOTH)) { 

        echo ' 
         <form method="post" action="dl.php"> 
          <input name="bname" value="<?php echo $branded_m_img_url; ?>" hidden></input> 
          <input type="submit" class="ui huge button" value="Download"></input> 
         </form>'; 
       } 

      } 

     } 

    } 

?> 

它返回約2打破重複的條目時,有1只在數據庫條目!

+1

你有嵌套的while循環,這就是爲什麼你會得到重複的條目,你也在'while'循環中覆蓋'$ row' –

+0

**警告:**不要在你的查詢中留下'$ checker'字符串,這是一個[SQL注入漏洞](http://bobby-tables.com/)。而是使用[PDO準備語句功能](http://php.net/manual/en/pdo.prepared-statements.php)並將其表示爲佔位符。您可以將值傳遞給'execute()'。相同數量的代碼行,但方式更安全。 – tadman

+0

謝謝你soo – Ch33ky

回答

0

「你嵌套while循環,這就是爲什麼你得到重複條目,還覆蓋$行的內部while循環 - 阿龍·埃坦昨天」

後,我固定的,它的工作!