Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;MySQL,获取表_Php_Mysql - Fatal编程技术网

PHP&;MySQL,获取表

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

我必须让这段代码返回相同的结果,但仅当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."<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
扩展。