2012-06-23 77 views
0

我有這個代碼,我用它打印數據庫中的一些字段。foreach提供的無效參數和mysql取數組問題

我的問題是,我收到有關foreach提供的無效參數和mysql提取數組問題的錯誤。

的代碼是這樣的:

foreach($checked1 as $key => $value){ 
    echo "<th> $value </th>"; 
} 
echo "</tr></thead>"; 

while($row = mysql_fetch_array($result)){ 

$checked1是一個數組

$checked1 = $_POST['checkbox']; 

這裏有什麼問題嗎?

整個代碼:

<?php 

echo "<div id='table-3'>"; 
    if(isset($_POST['Submit'])) { 
    echo "<pre>"; 
    $checked1 = $_POST['checkbox']; 
    $checked = implode(',', $_POST['checkbox']); 

    } 
    $con = mysql_connect('localhost','user','passwd'); 
    mysql_query("SET NAMES UTF8"); 

    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("db_name", $con); 

    $result = mysql_query("SELECT $checked FROM hostess"); 
    echo "<table >"; 
    echo "<thead><tr>"; 
    if(is_array($_POST['checkbox'])){ 
foreach($checked1 as $key => $value){ 
    echo "<th> $value </th>"; 
    } 
    echo "</tr></thead>"; 

    } else { 
echo "Checkbox is not an array."; 
} 



    while($row = mysql_fetch_array($result)){ 
echo "<tr>"; 
foreach($checked1 as $key => $value){ 
if($value == 'photo'){ 
echo "<td> <img src=foto/photo1/".$row[$value] . "></td>"; 

} else if($value == 'photo2'){ 
echo "<td><img src=foto/photo2/".$row[$value] . "></td></td>"; 

} 
else if($value == 'photo2' && $value == 'photo'){ 
    echo "<td> <img src=foto/photo1/".$row[$value] . "></td>"; 
    echo "<td><img src=foto/photo2/".$row[$value] . "></td></td>"; 
} 
else{ 

    echo "<td>" . $row[$value] . "</td>"; 
} 
}echo "</tr>"; 
    } 
    echo "</table>"; 
+1

* exact *錯誤消息會更有用。而'$ result'可能不是有效的MySQL資源。 –

+0

你能看到我更新的代碼嗎? –

+0

@LaMyse我想我可能會用我的編輯覆蓋您的更新。請再試一次。 – sachleen

回答

1

要麼$_POST['checkbox']沒有定義(沒有複選框在發送形式選中)或不是數組(輸入名稱不包含到底[]);

您應經常檢查是否變量包含在其上進行任何操作之前,你想要什麼,例如:

if(is_array($checked1)){ 
    foreach(...){ 
    } 
} 

$result = mysql_query(' ... '); 

if(!$result){ 
    die(mysql_error()); 
} 
+0

是的,我檢查過它,當我嘗試提交代碼一切工作正常,但是當我做一個網頁的打印,出現這個錯誤不是結果..這恰好是奇怪的... –

+0

你是什麼意思的'網頁打印'?您是否正在使用某些功能來顯示頁面,並在此功能中出現錯誤? –

+0

是的,我使用在線網絡打印機作爲pdf,它在所有頁面上工作,即使在這個問題上,只是在這裏它打印出錯誤.. –

1

什麼是您的$ _ POST [「複選框」]中調用的HTML表單?它應該是這樣的:

<input type="checkbox" name="checkbox[]" value="1" /> 

檢查以確保您的複選框值作爲數組來通過。請執行以下操作:

if(is_array($_POST['checkbox'])){ 
// contiue with foreach... 
} else { 
echo "Checkbox is not an array."; 
} 
+0

它是一個數組..,我只是檢查它! –