вие презаписвате всичките си три променливи вътре в цикъла 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.
Надявам се, че това ще ви помогне да разрешите проблема си.
Ако искате да търсите множество идентификатори, като използвате заявката:(тъй като споменах в коментарите, ще я добавя тук.)
ПРИМЕР:
//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']));
}
}
Чрез този метод можете да получите всички данни за идентификаторите, споменати по-горе, и да ги присвоите към масива.