2012-06-27 30 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