PHP中的mySQL WHERE子句问题

时间:2015-02-01 08:22:30

标签: php mysql

我创建了一个页面,允许用户编辑存储在数据库中的信息。但是,我不能让WHERE子句工作它只是不断提出未找到的条目。任何帮助都非常感谢。!

         <?php
mysql_connect('localhost', 'root', 'password') or die(mysql_error());
mysql_select_db("peopletank") or die(mysql_error());

$query = mysql_query("SELECT * FROM users WHERE id='$id'")

or             die(mysql_error());
if(mysql_num_rows($query)>=1){
while($row = mysql_fetch_array($query)) {
    $id = $row['id'];
    $firstname= $row['firstname'];
    $secondname= $row['secondname'];
}
?>
<form action="update.php" method="post">
<input type="hidden" name="ID" value="<?php echo $id;?>">

Value1: <input type="text" name="value1" value="<?php echo $firstname;?>">
<br>
Value2: <input type="text" name="value2" value="<?php echo $secondname?>">
<input type="Submit" value="Change">
</form>
<?php
}else{
    echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
?>

2 个答案:

答案 0 :(得分:0)

试试这个:

$query = mysql_query("SELECT * FROM users WHERE id='".$id."'");

确保正确填充$id。如果查询仍然没有显示如下,请先尝试检查值:

echo 'The id is : '.$id;
$query = mysql_query("SELECT * FROM users WHERE id='".$id."'");

如果$id填充正确但仍未返回结果,则在mysql数据库中手动运行查询,可能没有指定$id的结果

在填充数据时,无需在此查询中使用$id时获取$id

while($row = mysql_fetch_array($query)) {
    $id = $row['id']; /* << Remove this */
    $firstname= $row['firstname'];
    $secondname= $row['secondname'];
}

答案 1 :(得分:0)

我不确定是否有以下其中一项: 1)尝试用;

结束语句

2)数字不必在''

之间

3)尝试在``

之间放置列名

4)尽可能使用LIMIT 1(使事情更快但不重要)

5)总是尝试使用选择器(更快)

<? 
if ( $query = mysql_query("SELECT `firstname`,`secondname` FROM `users` WHERE (`id` = $id) LIMIT 1;"))
{
    if ($r = mysql_fetch_assoc($query)) 
    {
        $firstname = $r['firstname'];
        $secondname = $r['secondname'];
    }
}
?>