I feel like I am missing something stupidly obvious here, I am trying to get the results of an SQL query and then using them in a loop. I feel like I am missing something st
another option
$num_rows = mysql_num_rows($result)
for ($i=0;$i<$num_rows;$i++) {
$row = mysql_fetch_assoc($result)
$messageID = $row['messageID'];
}
You can do anything from here.
Remember, 1- query into object like $result 2- fetch row at a time from the object into an array which reflects an entire row in the table given your query definition with associative keys or numeric 3- do something with the array
You will loop through the object row by row and put in $row as an array.
Cheers
The return type of the $results = mysql_query($query); is a resource of type object. For example:
object(mysqli_result)#3 (5) {
["current_field"] => int(0)
["field_count"] => int(3)
["lengths"] => NULL
["num_rows"] => int(2)
["type"] => int(0)
}
Since, we are only interested with the table data. We have the pass the resource to mysql_fetch_array()
, and other functions for dealing with result tables, to access the returned data according to PHP Docs
We cannot directly use it.
However, If you are having problem understanding the inner working of while loop i will give you an example.
<?php
$s = 0;
class deepe {
function dis(){
$a = array(2,3,4,5,6);
$b = $GLOBALS['s'];
if ( $b < count($a) )
return $a[$b];
}
}
$chk = new deepe();
while($fac = $chk->dis())
{
echo $fac."<br />";
$GLOBALS['s']++;
}
?>
Instead of your foreach()
, you should do something like this (see the mysql_query() manual page for more):
while($result = mysql_fetch_assoc($results)) {
// your code
}
You must first fetch your results into an array. Looks like you started to do this but commented it out.
$results = mysql_query($query);
//$userData = mysql_fetch_array($results, MYSQL_ASSOC);
$resultset = array();
while ($row = mysql_fetch_array($results)) {
$resultset[] = $row;
}
// $resultset now holds all rows from the first query.
foreach ($resultset as $result){
//... etc...
I don't have the reputation to comment, and the above answers are correct, but the php mysql_query() manual page says that
this extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used
So now a correct way would be:
while($result = mysqli_fetch_assoc($results)) {
// your code
}