这个mysqli查询出了什么问题?

时间:2012-06-27 21:17:38

标签: php mysql

我正在试图找出下面我的mysqli代码有什么问题。数据绝对在表中。我有两个问题:

  1. 为什么这不能给我任何结果?
  2. 我可以在单独的php文件中使用echo <table></table>部分,如果是,我将如何调用$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>';
         }
         ?>
    
  3. 编辑:

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

2 个答案:

答案 0 :(得分:2)

查询看起来很稳定,代码的其余部分也是如此。以下是一些尝试的故障排除步骤:

  1. echo输出$query并直接针对您的数据库运行它。你有结果吗?如果您没有从直接查询中获得任何结果,那么这意味着查询返回0行,您的表也将为空。
  2. 执行var_dump($result)以验证其中是否存储了信息。您还可以将更改$result = $mysqli->query($query);添加到$result = $mysqli->query($query) or die $mysqli->error;
  3. 这两个步骤的结果可以让您对出现问题的地方有所了解。通常,您希望停止查询过程的每个部分,并查看所涉及的每个变量,以确保它具有您希望存储在其中的数据。

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

    请参阅include()

    上的PHP手册

答案 1 :(得分: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>