I need some advice. I wrote this query which pulls values in from my database. It then merges the two arrays so that the key is the id number and the value is the name.
When I output it using a for each loop, the key is still starting at 0 instead of starting using the key that I set.
Can anyone see what I am doing wrong?
The Code:
Code: Select all
$query = "SELECT name FROM campaign";
$result = mysql_query($query) or die(mysql_error());
if ($row = mysql_fetch_array($result))
{
$idarray = $row["id"];
$namearray = $row["name"];
}
while ($row = mysql_fetch_array($result))
{
$idarray .= "||" . $row["id"];
$namearray .= "||" . $row["name"];
}
$arrayid = explode("||" , $subjectarray);
$arrayname = explode("||" , $namearray);
//merge the aray so that the key = id and the value = name
$campaign_array = array_merge($arrayid,$arrayname);Code: Select all
<?php
//delete the naturally created 0 value in the array
unset($campaign_array[0]);
//echo out in table format
foreach($campaign_array as $key => $value){
echo "<tr height='30' onmouseover=style.backgroundColor='#DBE6F9' onmouseout=style.backgroundColor='white'>
<td><a href='campaign.php?name=".$key."&action=view'><font color=#CC0000>".$key."</font></a></td>
<td><a href='campaign.php?name=".$key."&action=view'><font color=#CC0000>".$value."</font></a></td>";
$query = "SELECT * FROM subscribers WHERE `campaign`='$key' AND `status`='1'";
$result = mysql_query($query) or die(mysql_error());
$numrows = mysql_num_rows($result);
echo "<td>$numrows</td>
<td><a href='campaign.php?name=".$key."&action=view'><font color=#CC0000>[edit]</font></a></td>
</tr>";
}
?>
I deleted ID 1 so it should start with the number 2. But the results start wit hthe correct name, not the correct ID.