我的脑子里已经完全空白了,但是我现在有很多的关系设置,我正在努力弄清楚如何将数据打印回php端。我知道我可以调用以下命令在phpmyadmin中显示结果:
SELECT skills. *
FROM `skills_matches` skills_matches
LEFT JOIN `skills` ON skills.id = skills_matches.skillid
LEFT JOIN `users` ON users.id = skills_matches.userid
WHERE skills_matches.userid =70 LIMIT 0 , 30然后,我有以下函数来调用该查询:
function fetchAllUserSkills($id)
{
global $mysqli,$db_table_prefix;
$stmt = $mysqli->prepare('SELECT skills . * '
. ' FROM `skills_matches` skills_matches'
. ' LEFT JOIN `skills` ON skills.id = skills_matches.skillid'
. ' LEFT JOIN `users` ON users.id = skills_matches.userid'
. ' WHERE skills_matches.userid = ?'
. ' LIMIT 0 , 30');
$stmt->bind_param("s", $id);
$stmt->execute();
$stmt->bind_result($id, $skills);
while ($stmt->fetch()){
$row = array('id' => $id, 'skills' => $skills);
}
$stmt->close();
return ($row);
}但是,当我尝试下列语句时,结果显示为空白:
$skillDetails = fetchAllUserSkills(70);
echo $skillDetails['skill'];
echo $skillDetails; 我在$skillDetails上做了一个$skillDetails,得到了以下内容:
array(2) { ["id"]=> int(15) ["skills"]=> string(5) "sales" }所以问题是:像我在phpmyadmin中所做的那样,为了在php中显示来自该查询的所有结果,我遗漏了什么?
发布于 2014-08-04 21:53:02
您每次都要覆盖$row:
$row = array('id' => $id, 'skills' => $skills);应该是
$row[] = array('id' => $id, 'skills' => $skills);然后,为了显示,您将遍历返回的数据:
$skillDetails = fetchAllUserSkills(70);
foreach($skillDetails as $row) {
echo $row['skills'];
} https://stackoverflow.com/questions/25128166
复制相似问题