[PHP] Pb array et foreach
Yull Master
Messages postés
46
Statut
Membre
-
Yull Master Messages postés 46 Statut Membre -
Yull Master Messages postés 46 Statut Membre -
Salut,
Je suis novice en html/php et je rencontre une erreur avec mes array.
Je comprend parfaitement l'erreur que j'ai mais comme cela effectue quand meme le travail que je souhaite faire bah faudrai juste que je parvienne a cacher les lignes d'erreurs qui apparaissent ou mieu les eliminer.
Je sais que ma maniere de codé est peu academique et que le code que je vous presente a une gros erreur (qui apparis sur ma page),
voici donc l'erreur suivit de mon code.
Warning: Invalid argument supplied for foreach() in c:\documents and settings\garnier\mes documents\web\liste.php on line 84
Merci a tous ceux qui passerosn un peu de temps a m'aider
cdt
Yull
Je suis novice en html/php et je rencontre une erreur avec mes array.
Je comprend parfaitement l'erreur que j'ai mais comme cela effectue quand meme le travail que je souhaite faire bah faudrai juste que je parvienne a cacher les lignes d'erreurs qui apparaissent ou mieu les eliminer.
Je sais que ma maniere de codé est peu academique et que le code que je vous presente a une gros erreur (qui apparis sur ma page),
voici donc l'erreur suivit de mon code.
Warning: Invalid argument supplied for foreach() in c:\documents and settings\garnier\mes documents\web\liste.php on line 84
<body>
<form method="POST" action="Saveliste.php">
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center"><img src="images/H.jpg" border= "0"/></th></tr>
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<p>
<h5>
Amis :<br><br>
<?
include("Conect.php");
if (isset($_SESSION['Login']))
{
$numa = $_SESSION['Login'];
}
else
{
include("VLog2.php");
}
if (isset($_GET['pagela']))
{
$pagela = $_GET['pagela']; // On récupère le numéro de la page
}
else
{
$pagela = 1; // défaut
}
//nb de amis par page
$nombreDelistesParPage = 10;
// On calcule le numéro du premier ami qu'on prend pour le LIMIT de MySQL
$premierlisteAafficher = ($pagela - 1) * $nombreDelistesParPage;
// On récupère le nombre total de amis
$retourliste = mysql_query("SELECT COUNT(*) AS nb_amis FROM individu WHERE Num_ind<>1");
$donneesliste = mysql_fetch_array($retourliste);
$totalDeslistes = $donneesliste['nb_amis'];
// On calcule le nombre de pages à créer
$nombreDePagesliste = ceil($totalDeslistes / $nombreDelistesParPage);
// On récupère les 3 dernières news
$retourliste = mysql_query("SELECT Nom_ind, Num_ind, conect FROM individu WHERE Num_ind<>1 and Num_ind<>'$numa' ORDER BY Num_ind ASC LIMIT " . $premierlisteAafficher . ', ' . $nombreDelistesParPage);
$retourliste2 = mysql_query("SELECT Num_amis, Ind_amis FROM amis WHERE Ind_amis='$numa' ORDER BY Num_amis ASC LIMIT " . $premierlisteAafficher . ', ' . $nombreDelistesParPage);
$nb=0;
while ($donneesliste = mysql_fetch_array($retourliste))
{
$nb++;
$donneesliste2 = mysql_fetch_array($retourliste2);
$xa = $donneesliste['Num_ind'];
$ya = $donneesliste['conect'];
foreach($donneesliste2 as $cle=>$valeur){ ----------------> ligne 84
// et tu mets ça dans un array
if( substr($cle,0,8)=="Num_amis"){ // si le nom du champ commence par "Numrss"
$index=substr($cle,8); // tu retrouves le numéro du rss et ça te servira de cle pour l'array
$array_numamis[$index]=$valeur;
}
if( substr($cle,0,8)=="Ind_amis"){ // si le nom du champ commence par "Chemin,"
$index=substr($cle,8); // tu retrouves le numéro du Chemin et ça te servira de cle pour l'array
$array_indamis[$index]=$valeur;
}
}
foreach($array_numamis as $cle=>$value){
$za=$value; // recup numero rss
$wa=$array_indamis[$cle];
?>
<table style="border-collapse: collapse;">
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<?
if (($za == $xa) AND ($wa == $numa))
{
?>
<input type="checkbox" name="amis" id="ami" CHECKED />
<?
}
else
{
?>
<input type="checkbox" name="amis" id="ami"/>
<?
}
}
?>
<input type="hidden" name="<?php echo $za.$nb ; ?>" tabindex="10" value="<? echo $donneesla['Num_amis'];?>" />
<input type="text" style="border: 0px; color: rgb(48,117,192); font-size: 15px; font-family: Papyrus; text-align: center;" name="<?php echo $xa.$nb ; ?>" tabindex="20" value="<? echo $donneesliste['Nom_ind'];?>"
onClick="window.open('View.php?numv=<? echo $xa ?>',null,'width=815,height=800, status=yes, directories=yes, toolbar=yes, location=yes, menubar=yes, scrollbars=yes, resizable=yes');">
<?
if ($ya==1)
{
echo "<FONT COLOR=green>(connecté)</FONT>";
}
else
{
echo "<FONT COLOR=red>(non connecté)</FONT>";
}
?>
</th></tr>
</table>
<br><br>
<?
} // Fin de la boucle des news
?>
</th></tr>
<br /></h5>
<tr><th style="border: 0px;" VALIGN="top" ALIGN="center">
<p><br /><input type="submit" value="Modifier"></p></th></tr>
</table>
</form>
<br>
<img src="images/B.jpg" border= "0"/>
</p>
</body>
Merci a tous ceux qui passerosn un peu de temps a m'aider
cdt
Yull
A voir également:
- [PHP] Pb array et foreach
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
5 réponses
Avant de faire un foreach, il faut toujours vérifier qu'il y ait au moins un élément dans le tableau :
if(count($donneesliste2)){
foreach($donneesliste2 as $cle=>$valeur){ ----------------> ligne 84
// et tu mets ça dans un array
if( substr($cle,0,8)=="Num_amis"){ // si le nom du champ commence par "Numrss"
$index=substr($cle,8); // tu retrouves le numéro du rss et ça te servira de cle pour l'array
$array_numamis[$index]=$valeur;
}
if( substr($cle,0,8)=="Ind_amis"){ // si le nom du champ commence par "Chemin,"
$index=substr($cle,8); // tu retrouves le numéro du Chemin et ça te servira de cle pour l'array
$array_indamis[$index]=$valeur;
}
}
}
Merci Jeff de te pencher sur mon probleme.
la est bien le soucis en faite dans mon array, je peu parfois ne pas avoir d'elements.
En gros je cherche dans ce code a resortir toutes les personens inscritent et a mettre une checkbox coché a coté de ceux que j'ai declaré comme etant mes amis.
il se peu donc qu'il n'exite pas de Num_amis et de Ind_amis.
comment faire donc soit pour leurs donner une valeurs malgré tout ou pour ne pas afficher les erreurs que cela produits
cdt
Yull
la est bien le soucis en faite dans mon array, je peu parfois ne pas avoir d'elements.
En gros je cherche dans ce code a resortir toutes les personens inscritent et a mettre une checkbox coché a coté de ceux que j'ai declaré comme etant mes amis.
il se peu donc qu'il n'exite pas de Num_amis et de Ind_amis.
comment faire donc soit pour leurs donner une valeurs malgré tout ou pour ne pas afficher les erreurs que cela produits
cdt
Yull
pour ne pas afficher les erreurs que cela produit, ce qui revient à faire la politique de l'autruche, il suffit de précéder foreach de @ :
@foreach
@foreach
Oui, je sais que ce n'est pas le mieu. Mais mon code fonctionne malgré les erreurs. Pour le moment je n'ai pas trouver de meilleur solution donc temporairement cela me permet d'avoir un truc qui marche en attendant de trouver mieu
en totu cas merci de ton aide Jeff ^^
Edit : je viens d'essayer avec le @ devant foreach et ca me sort une parse error
en totu cas merci de ton aide Jeff ^^
Edit : je viens d'essayer avec le @ devant foreach et ca me sort une parse error
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question