Bonjour, j'essaye bêtement d'afficher des données via une fonction pour pouvoir faire un lien cliquable et afficher les détails de ces mêmes données.
id_enseigne | 1 | 2 | 3 | etc
nom | nom1 | nom2 | nom3
logo | logo1 | logo2 | logo3
description | des1 | des2 | des3

Donc ma table est bien remplie.

Voici la page enseigne.php ou elle doit afficher tous les noms qui sont cliquable donc et qui vont renvoyer sur une autre page.

<?php
foreach(nom_enseigne() as $nom_enseigne){
    ?>
<p>
    <a href=""><?php echo $nom_enseigne'nom']; ?></a>
</p>
<?php
}
?>

fonction.php Donc la fonction.

<?php
// Affiche la liste des enseignes
function nom_enseigne() {
    $nom_enseigne = array();
    $query = mysql_query("SELECT id_enseigne, nom, logo, description FROM enseigne") or die(mysql_error());
    while ($rows = mysql_fetch_assoc($query)) {
        $nom_enseigne] = $rows;
    }
}
?>

Je me retrouve avec une erreur Warning: Invalid argument supplied for foreach() à la ligne 3. Je pense donc celle là

foreach(nom_enseigne() as $nom_enseigne){

Je ne vois pas où est le problème :(

Merci d'avance pour votre aide

Jeranders

3 réponses


djtec
Réponse acceptée

ta fonction ne retourne rien donc normal que le foreach ne sais pas sur quoi se faire met un return $nom_enseigne; à la fin de ta fonction

mgeoffray
Réponse acceptée

Salut,
l'erreur signifie que l'élément appelé dans ton foreach n'est pas correct. Ici ta fonction nom_enseigne() ne retourne aucune valeur d'où ton erreur. Il faut que juste après ton while tu mettes "return $nom_enseigne" afin qu'elle retourne ton tableau de valeur.

<?php

// Affiche la liste des enseignes
function nom_enseigne() {
    $nom_enseigne = array();
    $query = mysql_query("SELECT id_enseigne, nom, logo, description FROM enseigne") or die(mysql_error());

    while ($rows = mysql_fetch_assoc($query)) {
        $nom_enseigne] = $rows;
    }
    return $nom_enseigne;
}

?>

Effectivement cela marche mieux !

Merci à vous