How can I add mysqli result set to another array


#1

Am trying to put mysqli result set into an array for later use and this is how I did it(but is not working)

$split = [];
   $sql_money = "SELECT j_id, amount_invested FROM j_members WHERE j_activated = 1 LIMIT 5";
   $result_money = mysqli_query($conn, $sql_money);
   while($data = mysqli_fetch_assoc($result_money)){
       $split[] = ['id' => $data['j_id'], 'invest' => $data['amount_invested']];
      //echo $data['j_id'];
   }
   
   foreach($split as $s){
       echo $s['id'] . '<br>';
   }

Who can put me through


#2

What is it doing that it should not, or not doing that it should?

You don’t actually retrieve a column called id in your query, so that won’t help.


#3

Like @droopsnoot says, you’re selecting j_id, not id so that should do nothing but error out


#4

I’m not sure what the point is of copying the content of one array to to another.
Where you say $data = mysqli_fetch_assoc($result_money) then $data is already an array.

So you could forget the while and just say $split = mysqli_fetch_assoc($result_money) which is the same thing with a different variable name.
OK, you do change the key names, but that could be done in the query using AS:-

$sql_money = "SELECT j_id AS id, amount_invested AS invest FROM j_members WHERE j_activated = 1 LIMIT 5";

#5

Or $split[] = mysqli_fetch_assoc($result_money);

Or is there an equivalent to PDO fetchAll()? I think there is in some mysqli implementations.


#6

http://php.net/manual/en/mysqli-result.fetch-all.php


#7

Thanks. Not sure if it’s still a problem now, as the OP has edited the code to use the results retrieved from the query, but not added any detail on what is actually going wrong.


#8

Yes is now working but I prefer this which @SamA74 wrote. Short and succinct

$split[] = mysqli_fetch_assoc($result_money);