[PHP] Probleme Foreach

Fermé
Yull Master Messages postés 46 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 17 janvier 2008 - 9 nov. 2007 à 11:31
Yull Master Messages postés 46 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 17 janvier 2008 - 9 nov. 2007 à 12:27
Salut,

Voila je suis débutant en php et se pose a moi un probleme au niveau de mes foreach.

Voici le message d'erreur qui apparait :

Warning: Invalid argument supplied for foreach() in c:\documents and settings\garnier\mes documents\web\supprnews.php on line 52


Voici le code de mes deux pages merci a ceux qui m'aiderons a comprendre mon erreur.

cdt
Yull

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>

<title>Yull World</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Yull" href="styles/Yull.css" />
<!--<link rel="alternate stylesheet" media="screen" type="text/css" title="OtherDesign" href="otherdesign.css" />-->

<LINK REL="SHORTCUT ICON" HREF="http://VJC/favicon.ico">

<script type="text/javascript">

function OuvrirFenetre(url,nom,details) {

window.open(url,nom,details)

}

</script>
   </head>

   <body>
 <form method="POST" action="Supprnews.php"> 
<div id="corps"><br /><p>
<h2>News :</h2>
<?
 include("Conect.php");

if(empty($_SESSION['Login']))
{
include("VLog2.php");
}
else
{
$numnad = $_SESSION['Login'];
}

if (isset($_GET['pagenad']))
{
    $pagenad = $_GET['pagenad']; // On récupère le numéro de la page
}
else 
{
    $pagenad = 1; // défaut
}

//nb de messages par page
$nombreDeMessagesADParPage = 3;

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageADAafficher = ($pagenad - 1) * $nombreDeMessagesADParPage;

// On récupère le nombre total de messages
$retournad = mysql_query("SELECT COUNT(*) AS nb_messages FROM individu, message WHERE Num_ind='$numnad' AND Ind_mess='$numnad'");
$donneesnad = mysql_fetch_array($retournad);
$totalDesMessagesAD = $donneesnad['nb_messages'];

// On calcule le nombre de pages à créer
$nombreDePagesAD  = ceil($totalDesMessagesAD / $nombreDeMessagesADParPage);

// On récupère les 3 dernières news
$retournad = mysql_query("SELECT Nom_ind, Mess, Date FROM individu, message WHERE Num_ind='$numnad' AND Ind_mess='$numnad' ORDER BY Date DESC LIMIT " . $premierMessageADAafficher . ', ' . $nombreDeMessagesADParPage);

while ($donneesnad = mysql_fetch_array($retournad))
{
?>
<input type="hidden" name="Num_mess" tabindex="10" value="<? echo $donneesmp['Num_mess']; ?>" />
<h2><img src="images/MH.jpg" border= "0"/><br><input type="checkbox" name="del" id="del"/><? echo $donneesnad['Nom_ind']; ?>
<em>  le <? $date = substr ($donneesnad['Date'], 8,2)."-".substr ($donneesnad['Date'], 5,2)."-".substr ($donneesnad['Date'], 0,4)." à ".substr ($donneesnad['Date'], 11,8);
echo $date; ?></em><br><img src="images/MM.jpg" border= "0"/></h2>
<p>
<div id="news">
<h2>
<?
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$mess = nl2br(stripslashes($donneesnad['Mess'])); 
echo $mess;
?>
</h2>
</div>
<img src="images/MB.jpg" border= "0"/>
<br>
<?
} // Fin de la boucle des news

//  les liens vers chacune des pages
echo '<br>Page : ';
for ($inad = 1 ; $inad <= $nombreDePagesAD ; $inad++)
{
    echo '<B><a href="Profiladm.php?pagenad=' . $inad . '">' . $inad . '</a> </B>';
}

?>
<br><br>
   <a href="javascript:void(0)"
onClick="window.open('Supprnews.php',null,'width=800,height=600, status=yes, directories=yes, toolbar=yes, location=yes, menubar=yes, scrollbars=yes, resizable=yes');">Supprimer</a><br>
</p></p>
<br />
</form>
  </body>

</html>







<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>

<title>Yull World</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Yull" href="styles/Yull.css" />
<!--<link rel="alternate stylesheet" media="screen" type="text/css" title="OtherDesign" href="otherdesign.css" />-->

<LINK REL="SHORTCUT ICON" HREF="http://VJC/favicon.ico">

<script type="text/javascript">

function OuvrirFenetre(url,nom,details) {

window.open(url,nom,details)

}

</script>
   </head>
   
   <?
   
include("Conect.php");

if (isset($_SESSION['Login']))
{
$numnad = $_SESSION['Login'];
}
else
{
include("VLog2.php");
} 

foreach($_POST as $cle=>$valeur){

// et tu mets ça dans un array
   if( substr($cle,0,8)=="Num_mess"){ // si le nom du champ commence par "Num_bal"
      $index=substr($cle,8);  // tu retrouves le numéro du num_bal et ça te servira de cle pour l'array
      $array_nummess[$index]=$valeur;
 }
   if( substr($cle,0,3)=="del"){ // si le nom du champ commence par "del"
      $index=substr($cle,3);  // tu retrouves le numéro du del et ça te servira de cle pour l'array
      $array_del[$index]=$valeur;	  
 }
}

foreach($array_nummess as $cle=>$value){
$za=$value; // recup numero 
$wa=$array_del[$cle];

if ($wa=="on"){
mysql_query("DELETE FROM message WHERE Num_mess ='".$za."'") or die (mysql_error());
} 
}

echo "
<html><head>
</head>
<body>
<table wight=\"500\" align=\"center\"><tr><td>
<p>
<br><br><br><br>
Suppression des news effectuée. <br>
<br>
Merci.<br>
Yull.<br>
</p>
</td></td></table>
</body></html>";
?>
     <a href="javascript:window.close();"><img src="images/BPF.jpg" border= "0"/></a>
      </body>

</html>
A voir également:

2 réponses

Yull Master Messages postés 46 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 17 janvier 2008 1
9 nov. 2007 à 12:27
Merci de ta reponse.

Ce que je comprend pas dans ce cas c'est pourquoi mon $_post est vide...

parcontre je ne sais pas comment gerer mes erreurs et tester la validité de mon $_post.

de plus meme comment pourrai je retablir le situtaion si mon $_post n'est pas valide ?

merci de ton aide
1
Bonjour,
Ton probleme vient pas du fait que $_POST est vide quand tu appels ton script ?

Tu devrais, deja en gestion d'erreur, tester la validité de $_POST avant de faire un foreach dessus...
0