2012-06-27 28 views
0

我想弄清楚下面我的mysqli代码有什么问题。数据绝对在表格中。我有2个问题:这个mysqli查询有什么问题?

  1. 为什么不给我任何结果?
  2. 我可以在单独的php文件中回显<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>'; 
        } 
        ?> 
    

编辑:

它显示<table>却唯独没有给我的$名称,$电子邮件... ECT值。

+0

尝试回显错误。例如:'$ query =(“SELECT * FROM contacts WHERE contacttype IN('New','Buyer','Seller','Buyer/Seller','Investor')AND leadstatus ='New'ORDER BY date DESC”)或死(mysql_error);'看:http://forums.devarticles.com/mysql-development-50/mysql-where-in-function-2031.html –

+0

你确定查询结果什么?您是否尝试在MySQL命令行/ phpMyAdmin中执行? – CodeZombie

+0

尝试分解查询并确保预期数据存在于表中。 – Usman

回答

2

PHP手册。我宁愿使用连接字符串输出变量,就像这样(我只放了几行作为示例):

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> 
+0

这将是解决我的问题!谢谢!!! – Josh

2

该查询看起来很稳定,就像其他代码一样。这里有一些故障排除步骤尝试:

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

从这2个步骤的结果应该给你的东西在哪里走错了一个好主意。一般而言,您希望停止查询过程的每个部分,并查看涉及的每个变量,以确保其中包含您希望存储在其中的数据。

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

看到最后的回声看起来并不好建在include()

+0

你的意思是在$ query之后执行echo $ query?我在学!我在查询窗口中尝试$查询,并得到5个结果。 – Josh

+0

谢谢,我尝试了两个建议,仍然没有得到任何东西。查询返回5行,除了他们没有'$ name''$ partner'等。其他建议? – Josh