我遇到了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
”
答案 0 :(得分:1)
您需要一个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。
答案 1 :(得分:0)
您没有在查询中使用任何where条件。
试试这个
$sql = "SELECT id, siteID, name, description, skills, extra1, extra2 FROM folio WHERE siteID='".(int)$_GET['siteID']."' ";
答案 2 :(得分:0)
$sql = "SELECT
id,
siteID,
name,
description,
skills,
extra1,
extra2
FROM folio
where siteID = $siteID";
你错过了where
条款。
答案 3 :(得分:-1)
那是因为您选择了表格中的所有记录...在查询中添加LIMIT clause