Mysql查询从命令行工作但只有一半在PHP中工作

时间:2013-03-29 08:30:04

标签: php mysql

我有两张桌子

1.owners
ID
名字
姓氏

2.产品
ID
ID2
ID3
项目

SELECT * FROM owners LEFT JOIN product ON product.id=owners.id where firstname='Jezebel';

从命令行正常工作,返回所有者和产品的所有相关项目,但使用以下PHP

$result = mysql_query("SELECT * FROM owners LEFT JOIN product ON product.id=owners.id where firstname='".$_POST['fname']."'")

仅返回表所有者的结果。

我已经广泛搜索过,并且没有其他人看到这个问题。

4 个答案:

答案 0 :(得分:0)

$fname= $_POST['fname'];
$result = mysql_query("SELECT * FROM owners LEFT JOIN product ON product.id=owners.id where firstname='$fname'")

答案 1 :(得分:0)

首先,使您的查询与此类似

    $query = sprintf("SELECT * FROM owners LEFT JOIN product ON product.id=owners.id where firstname='%s'",mysql_real_escape_string(trim($_POST['fname'])));
    $result = mysql_query($query) or die(mysql_error());
    var_dump(mysql_fetch_assoc($result));

让我知道结果,以便我可以更新这个答案。

答案 2 :(得分:0)

首先:您有两个表在自动增量列id上匹配?

但是,试试这个?

SELECT tb1.id, tb1. firstname, tb1.lastname, tb2.id, tb2.id2, tb2.id3, tb2.item FROM owners AS tb1 LEFT JOIN product AS tb2 ON tb2.id=tb1.id where tb1.firstname=$fname

答案 3 :(得分:0)

我发现了错误。这与select语句无关。我在显示代码中输入了一个拼写错误。应该是这样的

echo "</td><td>"; 
echo $row['id3'];

但是就像这样

echo "</td></td>"; 
echo $row['id3'];

谢谢大家的帮助。