So basicly what I’m trying to accomplish is that foreach row in mysql query it prints out the html with the data from that row. Here’s what I have, it keeps giving me an error on my foreach.
<?php
$shots = mysql_query("SELECT * FROM shots") or die(mysql_error());
while($row=mysql_fetch_array($shots))
$data[]=$row;
foreach($shots as $data)
if (!empty($data)){
$id = $data["id"];
$shotby = $data["shot"];
$passby = $data["pass"];
$time = $data["time"];
?>
<div class="feedbody">
<div class="title"><?php echo $shotby; ?></div>
<div class="feed-data">: gets a pass from <span><?php echo $passby; ?</span> and he takes a shot!</div>
<img class="dot" src="images/dot.png" />
</div>
<?php
}
}
?>
Or something like that. Can anybody help point me in the right direction. I’ve been trying to find the answer.
EDIT: adding the error as requested.
Warning: Invalid argument supplied for foreach() in /home/content/93/7527593/html/fusionboard/includes/feed.php on line 7
First, if you want to access the data by name (instead of index), you need to includeMYSQL_ASSOCas a second parameter to mysql_fetch_array, or use mysql_fetch_assoc.Not really sure why you were copying the MySQL results to a second array just to loop through that later – you can loop through the results directly:
Update after you posted the error message: the error from your original code was that you first went through and copied each result row into
$data, but then in your foreach you tried to loop on$shots(again) and have it call each item$data.What you probably wanted to do was have
foreach ($data as $item)and then copy the properties from$item.