Erreur sur else

Signaler
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
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

Messages postés
19
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
3 mars 2009

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");
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
salut !

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

=> t'ouvre simplement 2 { ...

++
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

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é.
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
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á
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

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.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"