sql >> Database teknologi >  >> RDS >> Mysql

hvordan man bruger sessioner og arrays i en databaseforespørgsel til at gemme og vise data

du overskriver alle tre af dine variabler inde i while-løkken i hver iteration, det er derfor, du kun får ét resultat (som var det sidste datasæt, der blev udført i while løkke.

Der er grundlæggende 3 ting, du kan gøre for at løse dit problem.

1.Brug et array til at gemme alle de resultater, du får fra løkken

    while ($y=mysqli_fetch_array($sql)) {
          $mrk[] = implode("", DekripCBC($y['nama_merk']));
          $mdl[] = implode("", DekripCBC($y['nama_model']));
          $wrn[] = implode("", DekripCBC($y['warna']));
     }

2. Brug et foruddefineret array til at gemme alle de resultater, du får fra løkken ved hjælp af 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.sammensæt værdierne i din variabel

  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'])).',';
  }

Jeg vil varmt anbefale dig at bruge metode nr.1 eller nr.2.

Jeg håber, at dette vil hjælpe dig med at løse dit problem.

Hvis du vil søge efter flere id'er ved hjælp af forespørgslen:(da jeg nævnte det i kommentarerne, tilføjer jeg det her.)

EX:

//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']));
     }
  }

Ved denne metode kan du få alle data for de id'er, der er nævnt ovenfor, og tildele dem til arrayet.



  1. Sådan rettes:JSON_VALUE Returnerer NULL med lange strenge (SQL-server)

  2. Fejl:skal være ejer af databasen

  3. Er flere fremmednøgler i et enkelt felt mulige?

  4. Sådan hentes data fra mysql-databasen