sql >> Database >  >> RDS >> Mysql

hoe sessies en arrays in een databasequery te gebruiken om gegevens op te slaan en weer te geven

je overschrijft alle drie je variabelen in de while-lus in elke iteratie. Daarom krijg je slechts één resultaat (wat de laatste dataset was die werd uitgevoerd in de while lus.

Er zijn in principe drie dingen die u kunt doen om uw probleem op te lossen.

1.Gebruik een array om alle resultaten op te slaan die u van de lus krijgt

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

2.Gebruik een vooraf gedefinieerde array om alle resultaten op te slaan die u van de lus krijgt met behulp van 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. voeg de waarden samen in uw variabele

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

Ik zou je ten zeerste aanraden om methode nr.1 of nr.2 te gebruiken.

Ik hoop dat dit je zou helpen om je probleem op te lossen.

Als je naar meerdere id's wilt zoeken met behulp van de query:(sinds ik het in de opmerkingen heb genoemd, zal ik het hier toevoegen.)

BIJV.:

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

Met deze methode kunt u alle gegevens voor de hierboven genoemde id's ophalen en aan de array toewijzen.



  1. Kan postgresql.service niet starten?

  2. SQL-query om N rijen van dual te retourneren

  3. Hoe maak je een gebruiker aan met pgAdmin

  4. Database van Windchill opvragen met SQL