2011-03-07 76 views
0


我想从我的数据库中得到一个结果,只有一个名字。
我试过使用;PHP MySQL单列/行显示?

$row = mysql_fetch_array(mysql_query("SELECT * FROM persons WHERE id = '$id'")); 
echo $row['name']; 

但是没有用,其他任何方式只显示一个结果?
在此先感谢!

[编辑:]
(我使用PHP 5.3)

<?php 
include("connection.php"); 
$id = $_GET['deletid']; 
$result = mysql_query("SELECT * FROM persons WHERE id = '$id' LIMIT 1"); 
if(!$result){ 
    echo mysql_error(); 
} 
if ($row = mysql_fetch_array($result)){ 
    echo $row['name']; 
} 
echo "<p>id:$id</p>"; 
?> 
+0

你有没有试图把限制1您的查询的结束? – Harold 2011-03-07 10:18:53

+0

@哈罗德我试过了,但仍然没有奏效。 – 2011-03-07 10:28:07

+0

@Jay Wit,hei man,听我说:你想在那个网页上做什么?你试图做什么?我会为你写一段代码。 – Shoe 2011-03-07 10:44:06

回答

2

如果你只需要姓名,你只需要一个结果,你应该重写您的查询如下:

$row = mysql_fetch_array(mysql_query("SELECT name FROM persons WHERE id = '". (int) $id ."' LIMIT 1")); 

我们得到的结果,你应该只是一个

$row['name']; 

编辑 得到它现在你发布你的整个代码,我得到了什么问题:您删除获取其名称前面的结果。基本上你删除该用户,然后尝试获取其名称。 编辑

<?php 
include("connection.php"); 
    if (empty($_GET['deleteid'])) { 
     exit('"deleteid" is empty'); 
    } 
$id = mysql_real_escape_string($_GET['deletid']); 
$result = mysql_query("SELECT name FROM persons WHERE id = '". (int) $id ."' LIMIT 1"); 
    if(!$result){ 
     echo mysql_error(); 
    } 
$row = mysql_fetch_assoc($result); // for just one result you don't need of any loop 
echo $row['name']; 

echo "<p>id:". htmlspecialchars($id) ."</p>"; 
?> 
+0

没有执行$ quer DELETE函数,我只是将它放在一个变量中供以后使用。 – 2011-03-07 10:43:27

+2

@Jay Wit,不,使用函数mysql_query执行查询。要存储查询供以后使用,你应该把'$ var =“SELECT name FROM persons”;'放在'mysql_query()'函数中。 – Shoe 2011-03-07 10:45:38

+0

好吧,我不知道,谢谢你的提示! – 2011-03-07 10:50:30

0

尝试

$row = mysql_fetch_array(mysql_query("SELECT name FROM persons WHERE id = ". (int) $id)); 

echo $row['name']; 
+0

您的语法错误。 – 2011-03-07 10:30:03

+0

@Micheil什么错误?你会解释 – diEcho 2011-03-07 10:45:26

+0

你需要删除'。“'或在查询结尾添加'''。 – Gaurav 2011-03-07 10:49:07