Erreur sur else

cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011 - 26 févr. 2007 à 14:59
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 27 févr. 2007 à 09:31
je viens d'écrire ce code mais j'ai une erreur unexpected T_ELSE que je ne comprand pas.
if (!empty($_POST['del'])) {
  foreach ($_POST['del'] as $cle) {
   {
   // Requete de sélection de l'id_menu dans la table articles   $test "SELECT article.menu FROM article WHERE article.menu '$cle'";
   $restest = mysql_query($test, $connect) or die(mysql_error());
   $rows_test = mysql_num_rows($test);
   if ($rows_test > 0);
   echo "ATTENTION LE MENU EST RATACHE A UN ARTICLE" ;
   }
   else
   {
   // Si id_menu n'existe pas, lancer la requete de suppression   $Requete "DELETE FROM menu WHERE id_menu '$cle'";
   $resRequete = mysql_query($Requete, $connect) or die(mysql_error());
  }
  }
  header("Location:accueil.php");
 } 

merci pour vos lumieres

7 réponses

cs_mike17 Messages postés 19 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 3 mars 2009
26 févr. 2007 à 15:27
salut, essai ca :

if (!empty($_POST['del'])) {
   $cle=$_POST['del'];
   // Requete de sélection de l'id_menu dans la table articles   $test "SELECT article.menu FROM article WHERE article.menu '$cle'";
   $restest = mysql_query($test, $connect) or die(mysql_error());
   $rows_test = mysql_num_rows($test);
   if ($rows_test > 0) {
       echo "ATTENTION LE MENU EST RATACHE A UN ARTICLE" ;
   } else {
   // Si id_menu n'existe pas, lancer la requete de suppression   $Requete "DELETE FROM menu WHERE id_menu '$cle'";
   $resRequete = mysql_query($Requete, $connect) or die(mysql_error());
      }
  }
header("Location:accueil.php");
0
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
26 févr. 2007 à 17:12
salut !

foreach ($_POST['del'] as $cle) {
   {

=> t'ouvre simplement 2 { ...

++
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
26 févr. 2007 à 20:31
Putch : je ne comprand pas j'ai bien 2 {
le premier pour toute la fonction foreach et le deuxieme pour la premiere requete

Mike17 : je ne peux pas me séparer du foreach car il génére un tableau pour supprimer en une fois toute les valeurs céléctionné.
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
26 févr. 2007 à 20:42
Saell og blesuð

Votre code propose ici : ( en rouge  les erreurs rapides relevees )


if (!empty($_POST['del'])) {
  foreach ($_POST['del'] as $cle) {
   {
   // Requete de sélection de l'id_menu dans la table articles   $test "SELECT article.menu FROM article WHERE article.menu '$cle'";
   $restest = mysql_query($test, $connect) or die(mysql_error());
   $rows_test = mysql_num_rows($test);
   if ($rows_test > 0) ;
   echo "ATTENTION LE MENU EST RATACHE A UN ARTICLE" ;
   }
   else
   {
   // Si id_menu n'existe pas, lancer la requete de suppression   $Requete "DELETE FROM menu WHERE id_menu '$cle'";
   $resRequete = mysql_query($Requete, $connect) or die(mysql_error());
  }
  }
  header("Location:accueil.php");
 } 




Nouveau code :

if (!empty($_POST['del'])) {
    foreach ($_POST['del'] as $cle) {
        // Requete de sélection de l'id_menu dans la table articles        $test "SELECT article.menu FROM article WHERE article.menu '$cle'";
        $restest = mysql_query($test, $connect) or die(mysql_error());
        $rows_test = mysql_num_rows($test);
        if ($rows_test > 0){
            echo "ATTENTION LE MENU EST RATACHE A UN ARTICLE" ;
        }else{
            // Si id_menu n'existe pas, lancer la requete de suppression            $Requete "DELETE FROM menu WHERE id_menu '$cle'";
            resRequete = mysql_query($Requete, $connect) or die(mysql_error());
        }
    }
    header("Location:accueil.php");
}
?>

Vilhjálms
Sigurðsdóttir aka Frëyjá
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
26 févr. 2007 à 22:27
Yop!
  C'est là qu'une indentation du code prend tout son sens, :)

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
26 févr. 2007 à 23:25
Cest quoi une intentation ?
Dsl j'apprend tout seul donc il me manque forcement des éléments de base

Pour en revenir a mon code j'ai fait ceci :



if (!empty($_POST['del'])) {
    foreach ($_POST['del'] as $cle) {
        // Requete de sélection de l'id_menu dans la table articles        $test "SELECT article.menu FROM article WHERE article.menu '$cle'";
        $restest = mysql_query($test, $connect) or die(mysql_error());
        $rows_test = mysql_num_rows($restest);
        if ($rows_test > 0)
  $alerte = 'ATTENTION LE MENU EST RATACHE A UN ARTICLE' ;
  else
  {
        // Si id_menu n'existe pas, lancer la requete de suppression  $Requete "DELETE FROM menu WHERE id_menu '$cle'";
  $resRequete = mysql_query($Requete, $connect) or die(mysql_error());
        }
    }
 header("Location:accueil.php");
 } 

Et ca marche ... Enfin reste un detail.
En effet j'ai remplacé le "echo" par une variable sinon j'avais une erreur de header.

Et seul les menus non affectés à un article sont supprimables.



Mon dernier pb est que le message d'erreur ne s'affiche pas.
j'ai fait un <?php echo $alerte
; ?> mais rien, pas de message.

Le must serait que ce message s'affiche en face du menu non supprimable.
Donc logiquement j'ai intégrer l'echo dans ma boucle mais tj rien.

Avez vous une idée.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 févr. 2007 à 09:31
Yop!
  L'indentation, c'est ce que tu as commencé à faire: on écrit pas:
id( aaa )
bbb;
Mais:
id( aaa )
    bbb;

Ce qui est important c'est de le faire pour chaque nouveau bloc (if, else, for, while, ...): ca permet de vérifier très facilement les { } et tu vois en un clin d'oeil à quel if correspond un else, par exemple!

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous