在表中显示来自PHP中SQL查询的结果
问题描述:
我在显示某些SQL查询结果时遇到了一些麻烦。 目标:如果在'注册'表中为该事件'eid'注册了一个帮助器(事件ID),我想在正在生成的表中显示帮助器'名称'。如果(1) (2)有助手显示'姓名 - 正在等待批准..',(3)其他只显示助手的名字。在表中显示来自PHP中SQL查询的结果
尝试运行在phpMyAdmin中使用硬编码值进行SQL查询,我得到我想要的结果,所以我知道这不是我的查询。怀疑它只是将信息打印到表格中,而在某处出错。该表将显示数据,直到从地址开始的ZIP,然后是'助手'列的下一列根本不显示任何内容。因此,它让我觉得我有一个简单的拼写错误的地方根据我的if()语句的逻辑也觉得有趣也,当我做这一行:
echo "testing method -> ".getHelperIdOrName(2, 80)."<br>";
我不能得到表打印出来的。不知道这是否与我的确切问题有关,但似乎可能。在我把这个函数停止工作后,它好像可能是罪魁祸首。该函数的返回应该返回一个ID(int),一个名称“字符串”,或者只是一个通用值X(字符串)..
任何和所有帮助表示赞赏!
function getHelperIdOrName($x, $eid){
//Get the helper name first
$helperName = "";
$helperId = 0;
$sql = "SELECT id, first FROM users WHERE id IN (SELECT helper FROM signup WHERE gner = '".$userId."' AND eid = '".$eid."')";
$result = mysqli_query($db,$sql);
$row = $result->fetch_assoc();
if ($x == 2){
$helperName = $row["first"];
return $helperName;
}
else if ($x == 1){
$helperId = $row["id"];
return $helperId;
}
else {
return "X";
}
}
echo "testing method -> ".getHelperIdOrName(2, 80)."<br>";
//look for calendar and/or business approved events (approved=1) to display on page
$sql = "SELECT s.gner, s.helper, s.eid, s.approved, e.name, e.date, e.summary, e.street, e.city, e.state, e.zip
FROM signup s
INNER JOIN events e ON e.id = s.eid
INNER JOIN users u ON u.id = s.gner
WHERE s.gner = '".$userId."'";
$result = mysqli_query($db,$sql);
echo "<h3 class=\"text-center\">Events I'm Going To</h3>";
echo "<table class=\"table table-hover\"><tr><th>Event Name</th><th>Date</th><th>Summary</th><th>Location</th><th>Helper</th><th>Remove</th></tr>";
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["name"]."</td><td>".$row["date"]."</td><td>".$row["summary"]."</td><td>".$row["street"].", "
.$row["city"].", ".$row["state"]." ".$row["zip"]."</td>";
$tmp_eid = $row["eid"];
if (getHelperIdOrName(2, $temp_eid) == "X"){
echo "<td>Waiting for help..</td>";
}
else if ($row["approved"] == 0){
echo "<td>".getHelperIdOrName(2, $temp_eid)." -- Awaiting Approval (see below)</td>";
}
else {
echo "<td>".getHelperIdOrName(2, $temp_eid)."</td>";
}
echo "<td><form method=\"post\" action=\"remove.php\">
<button type=\"submit\" name=\"remove\" value=\"".$row["eid"]."\">Not Going</button></form></td></table>";
}
}
else echo "</table><br><p class=\"text-center\">You are not signed up for any events. Click <a href=\"index.php\">here</a> to sign up for events near you!</p>";
答
谢谢杰夫。问题是,在函数内部,它确实不知道$ userId是什么,尽管我在我的php文件的顶部有include声明。我有这条线在顶部加入到我的功能..
global $db; //is part of my db my connection info in my config.php file
,然后我也通过了$用户id的函数作为参数
这些线是什么我曾经帮我看看错误:
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
我也有一些结束</table>标记内一些逻辑如果使得固定时髦显示我得到(表中的第二行表中的被外界)
井它看起来像'$ userId'在你的'getHelperIdOrName'函数中是未定义的 –
一些好的[错误报告](http://*.com/q/845021/4233593)可能会有所帮助。 –