está sobrescribiendo las tres variables dentro del bucle while en cada iteración. Es por eso que solo está obteniendo un resultado (que fue el último conjunto de datos que se ejecutó dentro del while
bucle.
Básicamente, hay 3 cosas que puede hacer para resolver su problema.
1.Use una matriz para almacenar todos los resultados que obtiene del bucle
while ($y=mysqli_fetch_array($sql)) {
$mrk[] = implode("", DekripCBC($y['nama_merk']));
$mdl[] = implode("", DekripCBC($y['nama_model']));
$wrn[] = implode("", DekripCBC($y['warna']));
}
2.Use una matriz predefinida para almacenar todos los resultados que obtiene del ciclo usando 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.concatenar los valores en su variable
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'])).',';
}
Le recomiendo encarecidamente que utilice el método n.º 1 o n.º 2.
Espero que esto te ayude a resolver tu problema.
Si desea buscar múltiples ID usando la consulta:(ya que lo mencioné en los comentarios, lo agregaré aquí).
EJ:
//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']));
}
}
Mediante este método, puede obtener todos los datos de los identificadores mencionados anteriormente y asignarlos a la matriz.