bidgeir Posted October 16, 2006 Share Posted October 16, 2006 Hi.I am trying to call a function inside a while loop which returns a array. The script seems to stop running when I call the function and I dont know why. Here is part of my code:The bold code is where I call my function.while ($row=mysql_fetch_array($result)) { $types = $row['type']; echo '<h3>' . $types . '</h3>'; [b]$ar = getProduct($types);[/b] echo "bla"; foreach($ar as $value) { echo "<tr height='30'><td width='150'>" . $value . "</td><td width='50'> </td><td width='50'> 9 tommur</td><td width='50'><input type='checkbox' name='9inch'></td><td width='50'>12 tommur</td> <td width='50'><input type='checkbox' name='12inch'></td><td width='50'>16 tommu</td> <td width='50'><input type='checkbox' name='16inch'></td><td width='50'>Fjöldi</td><td width='50'><input type='text' name='qt'></td></tr>"; } $counter++; }Here is the function:function getProduct($type) { include 'db.php'; if (!($connection = @ mysql_pconnect($hostName, $username, $password))) die("Could not connect to database"); if (!mysql_select_db($databaseName, $connection)) showerror(); $theType = $type; $query = "SELECT name FROM products WHERE type='$theType'"; if (!($result = @ mysql_query($query1, $connection))) showerror(); $row=mysql_fetch_array($result); return ($row); }The script shows everything until I call the function. I added echo "bla"; to see if anything happend after the call, but it doesnt.Hope someone can help,Ásgeir Link to comment https://forums.phpfreaks.com/topic/24130-returning-an-array-from-a-function/ Share on other sites More sharing options...
Barand Posted October 16, 2006 Share Posted October 16, 2006 I get the impression that expect your function to return an array of several products. It [b]would[/b] only do that [b]if[/b] you have a poorly designed table where a record contains something liketype | product1 | product2 | product3 as it will return the fields from the first record found.However, as it there is at least one error and quite a bit of unnecessary code.1 ) you don't need the include and connection stuff unless you're searching in a different database2 ) you pass "$type" to the function but search for "$theType"EDIT Sorry, missed this line "$theType = $type;" and you have $query and $query1 Link to comment https://forums.phpfreaks.com/topic/24130-returning-an-array-from-a-function/#findComment-109700 Share on other sites More sharing options...
redbullmarky Posted October 16, 2006 Share Posted October 16, 2006 (sidenote: bidgeir, can you wrap your code in "code" tags just to make it a little easier to read?) Link to comment https://forums.phpfreaks.com/topic/24130-returning-an-array-from-a-function/#findComment-109704 Share on other sites More sharing options...
Barand Posted October 16, 2006 Share Posted October 16, 2006 Try[code]<?phpfunction getProduct($type) { $query = "SELECT name FROM products WHERE type='$type'"; $res_array = array(); if (!($result = @ mysql_query($query, $connection))) showerror(); while ($row = mysql_fetch_array($result)) { $res_array[] = $row['name']; } return ($res_array); }?>[/code] Link to comment https://forums.phpfreaks.com/topic/24130-returning-an-array-from-a-function/#findComment-109707 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.