$search = mysql_query("SELECT subject FROM book WHERE useid = $userid") or die(mysql_error());
$sub = mysql_fetch_array($search, MYSQL_ASSOC);
print_r($sub);
书表中有很多主题具有相同的用户ID,但它只检索第一个,为什么会这样?
答案 0 :(得分:2)
mysql_fetch_array
仅返回当前行的数组表示形式:
获取结果行作为关联数组,数字数组或两者
您必须使用循环来迭代所有返回的行:
$search = mysql_query("SELECT subject FROM book WHERE useid = $userid") or die(mysql_error());
while($sub = mysql_fetch_array($search, MYSQL_ASSOC)) {
print_r($sub);
}
答案 1 :(得分:0)
你必须解析这个
的结果while($sub = mysql_fetch_array($search, MYSQL_ASSOC)){
print_r($sub);
}
此原因
mysql_fetch_array函数返回一个关联数组,但如果没有更多行要返回,它也会返回FALSE!使用PHP While循环,我们可以利用这些信息。
如果我们将语句“$ row = mysql_fetch_array()”作为我们的while循环的条件语句,我们将完成两件事:
我们将获得一个新的MySQL信息行,每次while循环检查其条件语句时我们都可以打印出来。
当没有更多行时,该函数将返回FALSE,导致while循环停止!
因此它将继续打印数据,直到函数返回false
答案 2 :(得分:0)
由于mysql *正式折旧,您应该使用mysqli *或预处理语句
//$Conn = new mysqli(host, username, pass, db);
$sqlquery = "SELECT subject FROM book WHERE useid = $userid";
//Execute the query reurns data into a $result
$result = $Conn->query($sqlquery);
//results into a associative array
$resultArray = $result->fetch_all(MYSQLI_ASSOC);
print_r($resultArray);
<?php
$sth = $dbh->prepare("your query");
$sth->execute();
/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>