簡體   English   中英

PHP / MySQL結果重復

[英]PHP / MySQL results repeating

我在使用PHP時遇到問題。 我希望以下代碼僅顯示來自數據庫的一個結果-與siteID字段匹配的結果。 但是,它從數據庫返回所有結果。

<?php                    
$siteID = $_GET['siteID']; 
include 'connect.php';                      
$sql = "SELECT id, siteID,name,description,skills,extra1,extra2 FROM folio";   
$queryresult = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_assoc($queryresult)) {
$id = $row['id'];
$siteID = $row['siteID'];
$name = $row['name'];
$description = $row['description'];
$skills = $row['skills'];
$extra1 = $row['extra1'];
$extra2 = $row['extra2'];

echo "<div id='title'>       
<h5>$name</h5>
</div>

<div id='holder'>
    <div id='blogleft'>
</div>

<div id='blogright'>
    <p>Archive / Calendar<br /><br /> Add some sort of calendar or archive here; for previous blog posts.</p>
</div>
</div>";
}
?>

網址以“ /work.php?siteID=pluggedin ”結尾

您需要一個WHERE子句。

$sql = "SELECT id, siteID, name, description, skills, extra1, extra2 FROM folio WHERE siteID='".$siteID."'";

雖然我根本不建議這樣做。 如果您不知道我在說什么,請查找SQL注入。 我會做一個PDO語句。

像這樣:

$sql = "SELECT * FROM folio WHERE siteID=:siteid";
$sth = $dbh->prepare($sql);
$sth->bindParam(':siteid', $siteid, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetchAll();
print_r($result);

您也可以:

$result = $sth->fetch(PDO::FETCH_ASSOC);

它為您提供了一個具有類似於mysql_fetch_assoc的列名的數組,這將檢索下一行,再次類似於mysql_fetch_assoc。

您沒有在查詢中使用任何where條件。

嘗試這個

   $sql = "SELECT id, siteID, name, description, skills, extra1, extra2 FROM folio WHERE siteID='".(int)$_GET['siteID']."' ";
$sql = "SELECT 
            id, 
            siteID, 
            name, 
            description, 
            skills, 
            extra1, 
            extra2 
        FROM folio 
        where siteID = $siteID"; 

您只是錯過了where子句。

那是因為您正在選擇表中的所有記錄...在查詢中添加LIMIT子句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM