2012-05-11 48 views
1

我是MySQL和PHP的新手,并且无法使用此代码。请你告诉我,我错了:PHP MySQL选择语句错误

下面的代码:

<?php 

include('connection.php'); 

$num1 = '1'; 
$num2 = '2'; 

// Get all the data from the table 

$sql = mysql_query("SELECT * FROM table1 WHERE num1 = '$num1' AND num2 = '$num2'"); 

$row = mysql_fetch_assoc($sql) or die("No rows returned by query"); 

while ($row = mysql_fetch_assoc($sql)) { 
echo $row["num1"]; 
echo '</br>'; 
echo $row["num2"]; 
echo '</br>'; 
} 

?> 

如果我改变

$sql = mysql_query("SELECT * FROM table1 WHERE num1 = '$num1' AND num2 = '$num2'"); 

$sql = mysql_query("SELECT * FROM table1 WHERE num1 > '$num1' AND num2 > '$num2'"); 

它的工作原理。它不适用于等号,尽管应该打印出记录。

谢谢你的时间。

+0

请显示'table1'表的模式和(相关)内容。 – eggyal

+0

是否有错误或者没有结果?如果出现错误,请告诉我们错误消息 – Tobias

+0

如果更改查询,返回的行的值是什么? – DKSan

回答

1

你的问题是你在获取结果的两倍,所以 去掉while循环**($行= mysql_fetch_assoc($ SQL外fetch语句)或死亡(“没有行通过查询返回”); )**,它应该工作。 请更新,如果这个工程。

+0

谢谢!这工作。 – Theron

1

再次

SELECT * FROM table1 WHERE num1 = $num1 AND num2 = $num2 
+0

引用'INT'类型在任何数据库中仍然可以工作 – LeonardChallis

+0

?或者我需要打开一些选项? –

+0

@ Tiago这不起作用。我仍然得到一个空白屏幕。 – Theron

1

尝试既然你比较数字,请尝试使用它们不带引号。

SELECT * FROM table1 WHERE num1=$num1 AND num2=$num2 
+0

该表的设计如下: serial |键入:int |长度 - 4 |小数点0 |主键|自动增量 num1 |键入:int |长度 - 4 |小数点0 |允许为空 num2 |键入:int |长度 - 4 |小数点0 |允许为空 num3 |键入:int |长度 - 4 |小数点0 |允许为空 – Theron

+0

@ Rajeev S /不起作用。我仍然得到一个空白屏幕。 – Theron