Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
选择了2个表,但全部从1输出,仅从第二个表(php mysql)输出1_Php_Mysql - Fatal编程技术网

选择了2个表,但全部从1输出,仅从第二个表(php mysql)输出1

选择了2个表,但全部从1输出,仅从第二个表(php mysql)输出1,php,mysql,Php,Mysql,这是我的密码: <?php global $liID, $liClass; $liV = "SELECT * FROM css"; $li1 = mysqli_query($connect,$liV); $li = mysqli_fetch_array($li1); $liID = $li['liID']; $liClass = $li['liClass']; $post = "SELECT * FROM post ORDER BY id DESC LIMIT 5"; $post1 =

这是我的密码:

<?php
global $liID, $liClass;
$liV = "SELECT * FROM css";
$li1 = mysqli_query($connect,$liV);
$li = mysqli_fetch_array($li1);
$liID = $li['liID'];
$liClass = $li['liClass'];

$post = "SELECT * FROM post ORDER BY id DESC LIMIT 5";
$post1 = mysqli_query($connect,$post);
$postV = mysqli_fetch_array($post1);

do {
    printf("<a href='view.php?id=%s'><li id='%s' class='%s'><img src='%s'><div class='tip'><h5>%s</h5></div></li></a>",$postV['id'],$li['liID'],$li['liClass'],$postV['slimg'],$postV['title']);
}
while ($postV = mysqli_fetch_array($post1) && $li = mysqli_fetch_array($li1));

?>

结果是,我只从“css”中获得了我所需要的数据,
但从“post”中,我只有一个数据。

你的逻辑结构非常糟糕。您的
while()
条件是没有做您期望的事情,并且被解析/执行为

while($postV = (fetch($post1) && ($li = fetch($li1)))) {
注意支架的位置
$postV
正在获取两个fetch调用的布尔值
&
的结果。只要两者都返回非假值,$postV就会变成布尔值
TRUE
。e、 g.它相当于:

$x = 'foo';
$y = 'bar';
$p = $x && $q = $y;
var_dump($p);
这将输出布尔值true,而不是您所期望的
foo

请尝试以下方法:

while (($postV = mysqli_fetch_array($post1)) && ($li = mysqli_fetch_array($li1)));
       ^-----------------------------------^    ^------------------------------^

请注意所示的额外括号。

您是否出于任何特殊原因使用了
global