在表中显示来自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>"; 
+0

井它看起来像'$ userId'在你的'getHelperIdOrName'函数中是未定义的 –

+0

一些好的[错误报告](http://*.com/q/845021/4233593)可能会有所帮助。 –

谢谢杰夫。问题是,在函数内部,它确实不知道$ 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>标记内一些逻辑如果使得固定时髦显示我得到(表中的第二行表中的被外界)