2 回答

TA貢獻1780條經驗 獲得超4個贊
您在每次迭代中覆蓋 while 循環內的所有三個變量,這就是為什么您只得到一個結果(這是循環內執行的最后一個數據集while。
您基本上可以采取 3 件事來解決您的問題。
1.使用數組存儲循環得到的所有結果
while ($y=mysqli_fetch_array($sql)) {
$mrk[] = implode("", DekripCBC($y['nama_merk']));
$mdl[] = implode("", DekripCBC($y['nama_model']));
$wrn[] = implode("", DekripCBC($y['warna']));
}
2.使用預定義的數組來存儲使用 循環獲得的所有結果array_push。
/**There are 3 ways to define an empty array. You can use any of the following
1.$emptyArray = [];
2.$emptyArray = array();
3.$emptyArray = (array) null;
* */
$dataSet =[];
while ($y=mysqli_fetch_array($sql)) {
$data['mrk'] = implode("", DekripCBC($y['nama_merk']));
$data['mdl'] = implode("", DekripCBC($y['nama_model']));
$data['wrn'] = implode("", DekripCBC($y['warna']));
array_push($dataSet ,$data);
}
3.將值連接到變量中
while ($y=mysqli_fetch_array($sql)) {
// I have added a seprator(,) for all the variables so that there will be a , after every result and it wouldn't make you confused at the end
$mrk .= implode("", DekripCBC($y['nama_merk'])).',';
$mdl .= implode("", DekripCBC($y['nama_model'])).',';
$wrn .= implode("", DekripCBC($y['warna'])).',';
}
我強烈建議您使用方法 1 或方法 2。
我希望這能幫助您解決您的問題。
如果您想使用查詢搜索多個 id:(因為我在評論中提到,我會將其添加到此處。)
前任:
//You have multiple ids that you get from the session.
$jns = [12,13,4,5];
//So now you can use a foreach loop to loop all the ids and use the query to get relevant data
foreach($jns as $id){
$sql = mysqli_query($kns, "Select stok.id_stok as id_stok, merk.nama_merk as nama_merk, model.nama_model as nama_model, stok.warna as warna FROM stok INNER JOIN model On stok.id_model=model.id_model INNER JOIN merk ON model.id_merk=merk.id_merk where id_stok = '$id' ") or die(mysqli_error($kns));
while ($y=mysqli_fetch_array($sql)) {
$mrk[] = implode("", DekripCBC($y['nama_merk']));
$mdl[] = implode("", DekripCBC($y['nama_model']));
$wrn[] = implode("", DekripCBC($y['warna']));
}
}
通過這種方法,您可以獲取上面提到的 ids 的所有數據并將其分配給數組。

TA貢獻1783條經驗 獲得超4個贊
導致此問題的原因是它添加到變量中,并且由于相同的變量名稱,相同的變量每次都會被覆蓋。您要么需要清空這些變量,要么將它們推送到其他地方并可以使用它。
為此,我們可以使用 php 函數 array_push 將它們推送到主數組中。
$master = array();
while ($y=mysqli_fetch_array($sql)) {
$data['mrk'] = implode("", DekripCBC($y['nama_merk']));
$data['mdl'] = implode("", DekripCBC($y['nama_model']));
$data['wrn'] = implode("", DekripCBC($y['warna']));
array_push($master,$data);
}
- 2 回答
- 0 關注
- 157 瀏覽
添加回答
舉報