Marko Mikulić
Marko Mikulić

Reputation: 3

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\glasanje\index.php on line 111

<?php

    foreach (iscupaj_viceve() as $id => $glasanje){

        $result = mysql_query("SELECT * FROM vicevi WHERE id = $id");
        while ($row = mysql_fetch_array($query)) {
            echo    "<h2><center>".$row['Title']."</h2>";
            echo    "<div id='linkovi1'>" .nl2br($row["VicText"]). "<br></div>";
        }
?>
    <p>

            <a href="?glasanje=gore&id=<?php echo $id; ?>"><img src="../images/plus_sign.png" width="29" height="29"></a>
            <a href="?glasanje=dolje&id=<?php echo $id; ?>"><img src="../images/minus_sign.png" width="29" height="29"></a>
        Ukupno glasova : [
        <?php
            include 'core/db/connect.php';
            // Check connection
            $result = mysql_query("SELECT glasanje FROM vicevi WHERE id = $id");

            while($row = mysql_fetch_array($result))
            {
            echo nl2br($row['glasanje']);
            }
        ?>]
    </p>
<?php

    }

?>

And this is my function

function iscupaj_viceve(){


$sql = "SELECT id, VicText, glasanje FROM vicevi ORDER BY id DESC LIMIT 0, 10";

$rezultati = mysql_query($sql);
$glasanje = array();

while (($row = mysql_fetch_assoc($rezultati)) !== false){
    $rezultati[$row['id']] = $row['VicText'];
}
return $rezultati;

}

Browser prints this error message:

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\glasanje\index.php on line 111

But i can't seem to find a way to solve this problem :S Help?

Upvotes: 0

Views: 6002

Answers (2)

webbiedave
webbiedave

Reputation: 48897

Your function is overwriting $rezultati. I would suggest rewriting it as:

function iscupaj_viceve() {

    $rows = array();

    $sql = "SELECT id, VicText, glasanje FROM vicevi ORDER BY id DESC LIMIT 0, 10";

    $rezultati = mysql_query($sql);

    while (($row = mysql_fetch_assoc($rezultati)) !== false) {
        $rows[$row['id']] = $row['VicText'];
    }

    return $rows;
}

Upvotes: 1

AlucardTheRipper
AlucardTheRipper

Reputation: 176

iscupaj_viceve() doesn't always return an array.

$glasanje = array();

should be

$rezultati = array();

Upvotes: 0

Related Questions