Jump to content

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
Link to comment
https://forums.phpfreaks.com/topic/24130-returning-an-array-from-a-function/
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
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]
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.