0

以下のmysqliコードの何が問題になっているのかを理解しようとしています。データは間違いなくテーブルにあります。2つの質問があります:

  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>';
         }
         ?>
    

編集:

表示され<table>ていますが、$ name、$ email...ectの値は表示されていません。

4

2 に答える 2

2

クエリは、他のコードと同様に堅実に見えます。試すためのトラブルシューティング手順は次のとおりです。

  1. echo$queryデータベースに対して直接実行します。結果は出ますか?直接クエリから結果が得られない場合は、クエリが0行を返し、テーブルも空になることを意味します。
  2. var_dump($result)そこに保存されている情報があることを確認するためにを実行します。$result = $mysqli->query($query);に変更を追加することもできます$result = $mysqli->query($query) or die $mysqli->error;

これらの2つのステップの結果から、問題が発生している場所についての良いアイデアが得られるはずです。一般に、クエリプロセスの各部分を停止し、関連するすべての変数を調べて、期待するデータが内部に格納されていることを確認します。

2番目の質問に答えるには:はい、できます。テーブルのコードを別のファイルに入れてからそれを配置するinclude()と、含まれているコードで変数を引き続き使用できます。

include()に関するPHPマニュアルを参照してください

于 2012-06-27T21:25:49.183 に答える
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 に答える