2015-11-03 163 views
0

這是我所添加的代碼,它只是說,誤差警告:()提供的foreach無效參數

警告:()提供的foreach無效參數

<?php 
include '../../config/Database.php'; 
$pdo = Database::connect(); 
$q = "select branch_add,branch_Address,branch_landNo , branch_email , Fname from db_thisurienterprice.tbl_employee , db_thisurienterprice.tbl_branch , db_thisurienterprice.tbl_login where employeeBranch = branch_ID and NIC = " .$_SESSION['username'] ."limit 1"; 

foreach ($pdo->query($q) as $row) { 

    echo '<label class="control-label">'.$row['Fname'].' </label> <br/>'; 
    echo '<label class="control-label">'.$row['branch_add'].' </label> <br/>'; 
    echo '<label class="control-label">'.$row['branch_Address'].' </label> <br/>'; 
    echo '<label class="control-label">'.$row['branch_landNo'].' </label> <br/>'; 
    echo '<label class="control-label">'.$row['branch_email'].' </label> <br/>'; 


} 
Database::disconnect(); 
?> 

但如果我在查詢中刪除「limit 1」,這可以正常工作。但那次同樣的記錄重複了3次。什麼似乎是這個問題?

+0

您的SQL查詢無效,這可能是造成問題。添加一些錯誤處理並預先檢查退貨。 –

回答

4

您的查詢需要limit$_SESSION['username']之前,空間必須在引號

$q = "select branch_add,branch_Address,branch_landNo , branch_email , Fname from db_thisurienterprice.tbl_employee , db_thisurienterprice.tbl_branch , db_thisurienterprice.tbl_login where employeeBranch = branch_ID and NIC ='" .$_SESSION['username']."' limit 1"; 

您需要從您的結果集,然後使用foreach循環將日期

foreach ($pdo->query($q) as $row) { 

     echo '<label class="control-label">'.$row['Fname'].' </label> <br/>'; 
     echo '<label class="control-label">'.$row['branch_add'].' </label> <br/>'; 
     echo '<label class="control-label">'.$row['branch_Address'].' </label> <br/>'; 
     echo '<label class="control-label">'.$row['branch_landNo'].' </label> <br/>'; 
     echo '<label class="control-label">'.$row['branch_email'].' </label> <br/>'; 
    } 
+0

他們還需要引用用戶名值,假設它是一個字符串。儘管OP在這種情況下可能應該使用準備好的語句。更新:好得多:) –

+0

它嘗試後...>警告:非法字符串偏移 –

+0

@ Jon Stirling, 當它在用戶名中添加引號時,它會給出語法錯誤.. –

相關問題