Jump to content

Archived

This topic is now archived and is closed to further replies.

bidgeir

returning an array from a function

Recommended Posts

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'>&nbsp;</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

Share this post


Link to post
Share on other sites
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 like

type | 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 database

2 ) you pass "$type" to the function but search for "$theType"

EDIT Sorry, missed this line "$theType = $type;"
and you have $query and $query1

Share this post


Link to post
Share on other sites
(sidenote: bidgeir, can you wrap your code in "code" tags just to make it a little easier to read?)

Share this post


Link to post
Share on other sites
Try
[code]
<?php
function 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]

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.