|  | Posted by Karl Groves on 04/20/07 12:34 
Jerry Stuckle <jstucklex@attglobal.net> wrote innews:VpudnVRfZbwINbXbnZ2dnUVZ_uDinZ2d@comcast.com:
 
 > Karl Groves wrote:
 >> I'm missing something very obvious, but it is getting late and I've
 >> stared at it too long.
 >>
 >> TIA for responses
 >>
 >>
 >> I am writing a basic function (listed at the bottom of this post)
 >> that returns data from a query into an array.
 >>
 >> The intent is that the following code:
 >> $foo = dbSelectData("SELECT foo, bar FROM table", $link);
 >> would return an array with the keys: 'foo' and 'bar'.
 >>
 >> But what I get is instead a multidimensional array.
 >> Doing a var_dump on $foo turns out to be
 >> array(2) {
 >>     ["foo"]=>
 >>     string(5) "Stuff"
 >>     ["bar"]=>
 >>     string(10) "More Stuff"
 >>   }
 >>
 >>
 >> I'm wondering where I went wrong in writing the function below.
 >>
 >>
 >> function dbSelectData($query, $connection, $rtype=MYSQL_ASSOC){
 >>
 >>      $result = mysql_query($query, $connection);
 >>      if(!$result){
 >>           dbThrowError("Error in function dbSelectData. Query Was
 >>           <em>
 >> $query</em>.");
 >>           return FALSE;
 >>      }
 >>      else{
 >>           $numrows = mysql_num_rows($result);
 >>
 >>           if($numrows == 0){
 >>                return FALSE;
 >>           }
 >>           else{
 >>                while($rows = mysql_fetch_array($result, $rtype)){
 >>                    $output[] = $rows;
 >>                }
 >>                mysql_free_result($result);
 >>                return $output;
 >>           }
 >>      }
 >> }
 >>
 >>
 >> Thanks in advance.
 >>
 >
 > Hi, Karl,
 >
 > I'm confused.  This should work.
 >
 > while($rows = mysql_fetch_array($result, $rtype)){
 >
 > $rows will be a single dimensional array with indexes ['foo'] and
 > ['bar'].
 >
 >      $output[] = $rows;
 >                }
 > And $output will be an array of the above array with indexes zero to
 > (number_of_rows_returned - 1).
 >
 > Are you sure this is the exact code?  If so, can you show us where you
 > call it and dump the results?  Maybe the problem is back there.
 >
 
 I apologize to everyone for the confusion in my original post.
 My var_dump example was wrong.
 I'm getting a multidimensional array and want a single dimension.
 
 I recognize that my use of $output[] = $rows; seems to be the reason why
 I get the multidimensional array. I guess my real issue is figuring out
 how to get ALL returned rows of the single dimensional array. Everything
 else I've tried gives me one row.
 
 
 --
 Karl Groves
 [Back to original message] |