PHP&;MySQL,获取表
我必须让这段代码返回相同的结果,但仅当userID是一个数字时(ex16); 每个设备在此表中都有一个用户ID和一个用户名。 代码如下:PHP&;MySQL,获取表,php,mysql,Php,Mysql,我必须让这段代码返回相同的结果,但仅当userID是一个数字时(ex16); 每个设备在此表中都有一个用户ID和一个用户名。 代码如下: <?php $myQuery= 'SELECT * FROM devicesissued di LEFT JOIN usercred uc ON di.userID = uc.userID WHERE 1 ORDER BY timeStamp DESC'; $result = mysql_query($myQuery) or die($myQuery
<?php
$myQuery= 'SELECT * FROM devicesissued di LEFT JOIN usercred uc ON di.userID = uc.userID WHERE 1 ORDER BY timeStamp DESC';
$result = mysql_query($myQuery) or die($myQuery."<br/><br/>".mysql_error());
while($row = mysql_fetch_array($result))
{
$catQuery = 'SELECT * FROM deviceinventory WHERE deviceID = '. $row['deviceID'];
$catResult = mysql_query($catQuery) or die($catQuery."<br/><br/>".mysql_error());
$cat = mysql_fetch_array($catResult);
echo "<tr>";
echo "<td>" . $row['displayName'] . "</td>";
echo "<td>" . $row['deviceID'] . "</td>";
echo "<td>" . $cat['barCodeID'] . "</td>";
echo "<td>" . $cat['category'] . "</td>";
echo "<td>" . $row['deviceName'] . "</td>";
echo "<td>" . $cat['operatingSystem'] . "</td>";
echo "<td>" . $cat['serialNumber'] . "</td>";
echo "<td>" . $cat['macAddress'] . "</td>";
echo "<td>" . $row['timeStamp'] . "</td>";
echo "</tr>";
}
?>
如果我添加WHERE'userID'=A-Number
子句,它不会做任何事情
如果你有任何想法,我很乐意尝试
谢谢。尝试稍微更改一下您的查询
$myQuery= 'SELECT * FROM devicesissued di
LEFT JOIN usercred uc ON di.userID = uc.userID
WHERE di.userID=the_number_here ORDER BY timeStamp DESC';
由于在两个联接表(
deviceissued
和usercred
)中都有userID,您必须告诉MySQL您要在哪个表上执行WHERE
-子句。MySQL
扩展=坏主意
..WHERE 1 ORDER
为什么1
在这里?您真的要用引号添加WHERE'userID'吗?这意味着您正在比较ID为的字符串,而不是列值。查询应该是SELECT*FROM deviceissued di LEFT JOIN usercred uc ON di.userID=uc.userID,其中uc.userID=16 ORDER BY timeStamp DESC
@Thamaraiselvam,其中查询中的1
是可选的。它没什么用。它产生的效果与没有它时产生的效果相同。另外,就像你问它为什么应该在那里一样,他可以删除它以避免混淆。将WHERE 1
替换为WHERE di.userID=A-Number
,或者如果你有什么好的理由(老实说,我无法想象)来解释WHERE 1
,你必须说WHERE 1和di.userID=A-Number
。正如@Hackerman已经说过的——帮自己一个忙,不要使用mysql
扩展。