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 Quote 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 Quote 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?) Quote 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] Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.