0

我试图弄清楚下面的 mysqli 代码有什么问题。数据肯定在表中。我有两个问题:

  1. 为什么这没有给我任何结果?
  2. 我可以将 echo<table></table>部分放在单独的 php 文件中吗,如果可以,我将如何调用$name,$partner,$cell等?

      <?php
    
      $mysqli = new mysqli($host, $uname, $pword, $db);
    if ($mysqli->connect_errno)
    {
    echo "Connection failed: %s\n", $mysqli->connect_error;
    exit();
    }
    
      $query = ("SELECT * FROM contacts WHERE contacttype IN ('Buyer','Seller','Buyer / Seller','Investor') AND leadstatus = 'New' ORDER BY date DESC");
    
      $result = $mysqli->query($query);
    
      while ($row = $result->fetch_array()) {
    
      $space = (!empty($row['firstname']) && !empty($row['lastname'])) ? ' ' : '';        
      $name = $row['firstname'].$space.$row['lastname'];       
      $partner  = $row['spousefirst'];   
      $cell = (!empty($row['phonecell'])) ? " {$row['phonecell']} (cell)" : ''; 
      $email = (!empty($row['email'])) ? " {$row['email']} (email)" : '';
      $ID = $row['ID'];
    
      echo'<table>
      <tbody>
      <tr>
        <td><input type="checkbox" name="" id="" value="<? echo $ID; ?>"></td>
        <td><a href="/backend/leads/view/?ID=<? echo $ID; ?> "><strong><? echo $name; ?></strong></a></td>
        <td><a href="/backend/leads/view/?ID=<? echo $ID; ?> "><? echo $partner; ?></a></td>
        <td><? echo $phonecell; ?></td>
        <td><a href="mailto:<? echo $email; ?>"><? echo $email; ?></a></td>
        <td><? echo date("M jS, g:i A", strtotime($date)); ?></td>
        <td><? echo $contacttype; ?></td>
        <td><? echo $agentassigned; ?></td>
        <td><? echo $leadstatus; ?></td>
        <td><a href="/backend/contacts/notes.php?ID=<? echo $ID; ?>">View </a>+ </td>
        <td><a href="/backend/contacts/todo.php?ID=<? echo $ID; ?>">View </a>+ </td>
        <td><a href="/backend/contacts/deletesuccess.php?ID=<? echo $ID; ?>">D</a></td>
        </tr>
        </tbody>
    </table>';
         }
         ?>
    

编辑:

它显示<table>但只是没有给我 $name、$email...ect 的值。

4

2 回答 2

2

最终的回声看起来构造得不好。我更喜欢使用连接字符串来输出变量,就像这样(我只放了几行作为例子):

echo'<table>
<tbody>
   <tr>
     <td><input type="checkbox" name="" id="" value="'. $ID .'"></td>
     <td><a href="/backend/leads/view/?ID='. $ID .'"><strong>'. $name.' </strong></a></td> 
于 2012-06-27T22:04:30.993 回答
2

该查询看起来像您的其余代码一样可靠。以下是一些可以尝试的故障排除步骤:

  1. echo$query直接针对您的数据库运行它。你得到结果了吗?如果您没有从直接查询中得到任何结果,那么这意味着查询返回 0 行,并且您的表也将最终为空。
  2. 执行 avar_dump($result)以验证其中是否存储了信息。您还可以将更改添加$result = $mysqli->query($query);$result = $mysqli->query($query) or die $mysqli->error;

这两个步骤的结果应该可以让您很好地了解哪里出了问题。通常,您希望停止查询过程的每个部分并查看涉及的每个变量,以确保其中包含您期望存储的数据。

回答你的第二个问题:是的,你可以。如果您将表的代码放在单独的文件中,然后将include()其放入,则变量仍可用于包含的代码。

请参阅有关include()的 PHP 手册

于 2012-06-27T21:25:49.183 回答