我有一個連接到數據庫,我使用mysqli_fetch_assoc
來創建一個聯合數組來返回數據到屏幕。的代碼部分看起來是這樣的:mysqli_fetch_assoc返回爲foreach提供的無效參數()
$sql = "SELECT * FROM Kundregistert ORDER BY ID DESC;";
//
//
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_assoc($result);
//
// Avsluta anslutning till db
return ($row['Namn'], $row['Telefonnummer'], $row['Epost'], $row['Dacktyp'], $row['Lagerstatus'], $row['Datum']);
mysqli_close($conn);
}
一開始我還下稱爲一列存儲在數據庫中的所有信息「昆德」 (我只用return $row['Kund']
則因爲它是唯一的1列),則它沒有提供foreach錯誤。現在我通過7個變量存儲信息,並希望返回所有列,就像我上面要做的那樣。
這裏是foreach的代碼;
foreach($company->getCustomerList() as $key => $obj){
echo "<h3 id='id'>$key</h3> " . $obj->getcustomername() . ", " . $obj->getcustomertfn() . ", " . $obj->getcustomerepost() . "<br>" . $obj->gettirebrand() . ", " . $obj->getstatus() . ": " . $obj->getdate() . "<br>" .
" <a href='classes_serialisering.php?delPart=$key' id='radera'>Radera post $key </a>" . " <a href='classes_serialisering.php?updateView=$key' id='uppdatera'>Uppdatera Post </a><br>";
}
起初,當我只有一個專欄中,我試着只是改變return $row['']
比「昆德」別的東西,然後我也得到了foreach
錯誤。所以我覺得有什麼問題,我試圖返回列,但我似乎無法使它的工作。
我是一名PHP初學者,請牢記這一點。
謝謝。
編輯*****
interface RegisterCustomer {
function addCustomer($customername, $customertfn, $customerepost, $tirebrand, $status);
function getCustomerList();
}
class Company implements RegisterCustomer {
protected $companyname = '';
public $CustomerList = array();
function read_data(){
//
//Anslut mot databas
$conn = mysqli_connect('xxxxx', 'xxxxx', 'xxxxx')
or die('Could not establish connection to MySQL.');
$db_connected = mysqli_select_db($conn, "xxxxxxx");
//
//
$sql = "SELECT * FROM Kundregistert ORDER BY ID DESC;";
//
//
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_assoc($result);
//
// Avsluta anslutning till db
return $row['Namn'];
mysqli_close($conn);
}
function __construct($companyname){
$this->foretag = $companyname;
$this->CustomerList = unserialize($this->read_data());
}
我覺得即時通訊代碼
只能從函數返回一個值,但該值也能像$行的一個數組,甚至結果集 –
和關閉返回後的連接是沒有意義的,它永遠不會被執行,因爲返回終止執行函數 –