Re: Weird Array Issue...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Op 1/23/10 3:28 AM, Don Wieland schreef:
> Hi,
> 
> I have defined a stored procedure in my mySQL DB and when I call the
> procedure in my mySQL browser it returns the CORRECT results:
> 
> DROP PROCEDURE IF EXISTS `Get_OHC_Years`;
> DELIMITER $$
> CREATE DEFINER=`donw`@`` PROCEDURE `Get_OHC_Years`()
> BEGIN
>   SELECT (YEAR(ohc_Date)) as ohc_year FROM Office_Hours_Cuttoff GROUP BY
> YEAR(ohc_Date) ORDER BY YEAR(ohc_Date) ASC;
> END
> $$
> 
> It returns:
> -- ohc_year--
> 2010
> 2009
> 2008
> 2007

I doubt it will return the values in the order you have shown.

> 
> I was assuming this will return an array in my PHP when I call it:
> 
>     /**
>     *Get All Office Hours Cut-off YEARS
>     */
>     $db->next_result();

this call to next_result() seems strange.

>     $years = $db->query("CALL Get_OHC_Years()") or die("Records not
> found.");
>     $yRow = $years->fetch_array();
>     echo "<pre>";
>      print_r($yRow);
>      echo "</pre>";
> 
> But the result it returns on my page is:
> 
> Array (
> [0] => 2007
>  [ohc_year] => 2007
> 
> What am I missing?  Thanks!

the bit where you actually RTM or source?

you seem to be assuming what the fetch_array() call does,
not being able to tell exactly what kind of object $db
is I'll hazard a guess that fetch_array() is a wrapper method
for mysql_fetch_array() - you'd want mysql_fetch_assoc()
instead, and you'll need to loop to fetch all the rows.

maybe try something like:

echo "<pre>";
while ($yRow = $years->fetch_assoc())
	print_r($yRow);
echo "</pre>";

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux