hallo,
Hoe zorg ik ervoor er meerdere rows worden returned?
<?php  
function test_reviews() 
      {
          $database = new database();
          $q ='SELECT * FROM klanten WHERE test_reviews = 1';
          $result = $database->query($q);
          while ($rows = mysqli_fetch_assoc($result))
          {
              
              return $rows['id'];
          }
      } 
?> 
Waarom return je gewoon geen array door $rows te returnen?
Dan kan je bij het aanroepen van test_reviews() eenvoudig alle data ophalen die je maar wilt.

Verder weet ik niet hoeveel velden je tabel heeft, maar gebruik bij voorkeur geen * (joker) maar specificeer alle velden die je wilt ophalen.

Verder overschrijf je steeds $rows, dus zal je steeds het laatste item krijgen.


<?php
$result = $database->query($q);
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
	$data[] = $row;
}
              
return $data;
?>
Als je MySQLi in objectgeoriënteerde stijl gebruikt — met $database = new database() gevolgd door $result = $database->query($q) — kun je daarna beter niet mysqli_fetch_assoc() in procedurele stijl gebruiken.

Verder kun je in dit geval ook mysqli_result::fetch_array gebruiken, al heeft je array dan wel een net iets andere structuur:


<?php  
function test_reviews() 
{
    $database = new database();
    $result = $database->query('SELECT * FROM klanten WHERE test_reviews = 1');
    return $result->fetch_array();
}
?>


- Ariën - op 14/03/2017 11:53:40
<?php
$result = $database->query($q);
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
	$data[] = $row;
}              
return $row;
?>

Dat moest natuurlijk return $data zijn.

Ward van der Put op 14/03/2017 12:21:20
Verder kun je in dit geval ook mysqli_result::fetch_array gebruiken, al heeft je array dan wel een net iets andere structuur:

Maar die retourneert nog steeds slechts één record.
Dat moest natuurlijk return $data zijn.

Juist!

Reageren