ou est l'erreur ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ou est l'erreur ?

par albat » 10 août 2006, 19:44

J'accepterai la souris en offrande. :twisted: :agenouille:

par AnT. » 10 août 2006, 19:22

Tjs aussi étrange,

j'ai repris ton, code, copié/coller et re collé les autres éléments de mon fichier apèrs, ca marche.

j'ai rien compris, mais merci qd même !

par Invité » 10 août 2006, 19:03

Tu as pensé à un exorcisme ? :roll:
je pensais bien sacrifier une souris, mais je ne sais pas si ca marcherais.

En plus, je viens de changer de serveur et j'ai tjs le même pb alors...

par albat » 10 août 2006, 18:56

Je n'ai pas idée d'un quelconque paramètre dans la configuration de PHP
qui pourrait faire planter un code aussi simple et épuré...

Tu as pensé à un exorcisme ? :roll:

par AnT. » 10 août 2006, 18:43

Ton switch fonctionne correctement.
L'erreur vient donc d'un autre endroit de ton code.
le problème, c'est qu'il n'y a plus rien d'autre dans le code, j'ai tout virer pour faire le test !

Question con : est-ce que pourrait venir du serveur ?

par albat » 10 août 2006, 18:13

$moment = 'B';
switch ($moment)
       { case 'A' : echo "toto"; break;
         case 'B' : echo "mama"; break;
         case 'C' : echo "lulu"; break;
       }
Chez moi, ce code affiche : mama

Ton switch fonctionne correctement.
L'erreur vient donc d'un autre endroit de ton code.

par AnT. » 10 août 2006, 18:02

Encore plus mystérieux...
je désactive tout pour ne garder que le swtich

si j'ai :
$moment = 'B';
switch($moment)
{ 
case 'A' :
echo "toto";
break;

// case 'B' : 
//echo "mama";
//break;

case 'C' :
echo "lulu";
break;
}
ca marche nickel, (c'est à dire que ca n'affiche rien ! )

En revanche avec :
$moment = 'B';
switch($moment)
{ 
case 'A' :
echo "toto";
break;

case 'B' : 
echo "mama";
break;

case 'C' :
echo "lulu";
break;
}
ca me redonne :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ECHO in /mnt/.../php/arrivee.php on line 38
la j'ai plus d'idée...

par graphistnet » 10 août 2006, 13:58

Pourrais tu mettre la totalité de ton code? l'erreur vient d'ailleurs

par albat » 10 août 2006, 13:58

L'erreur vient peut-être d'une ligne antérieure au switch().
Il faudrait vérifier tout ton code...

par AnT. » 10 août 2006, 13:51

Je continue mes tests

lors que je n'ai plus que
switch($moment)
{ 
case 'Ar1' :
echo "toto";
break;

case 'Ar2' : 
echo "mama"; // <- c'est là la ligne 37
break;
}
et ben j'ai encore :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ECHO in /mnt/.../php/arrivee.php on line 37
là j'y pige plus rien.
Ou c'est qu'elle est pas bonne ma syntaxe case ?

par polo » 10 août 2006, 12:57

bonjour,
En effet tu a oublier un petit quelque chose
<?php switch($moment)
    { 
case 'Ar1' :
$requete1 = "UPDATE table1 SET ladate='".$lejour."' WHERE nom LIKE '%".$nom."%'";
$execution = mysql_query($requete1);
$requete2 = "UPDATE table1 SET arrive1='".$lheure."' WHERE nom LIKE '%".$nom."%'";
$execution = mysql_query($requete2);
break;

case 'Ar2' : 
echo "toto"; // <- c'est là la ligne 34
break; 
    }  // tu a oublié de fermer l'accolade
?>
En espérant t'avoir aidé :D

par AnT. » 10 août 2006, 12:25

  1. Faudra aussi m'expliquer la différence entre les cas 'Ar1' et 'Ar2' ;
    les requêtes exécutées me semblent identiques.
Justement, elles le sont, mais le 2e provoque 1 erreur et pas la 1ere.

maintenant j'ai :
switch($moment)
    { 
case 'Ar1' :
$requete1 = "UPDATE table1 SET ladate='".$lejour."' WHERE nom LIKE '%".$nom."%'";
$execution = mysql_query($requete1);
$requete2 = "UPDATE table1 SET arrive1='".$lheure."' WHERE nom LIKE '%".$nom."%'";
$execution = mysql_query($requete2);
break;

case 'Ar2' : 
echo "toto"; // <- c'est là la ligne 34
break;
et la réponse est :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ECHO in /mnt/---/php/arrivee.php on line 34
j'ai encore du oublier de fermer un truc, mais ou ?

par albat » 10 août 2006, 12:08

case 'Ar2' : 
echo $nom // <- modif ici en ligne 33 

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ECHO in /mnt/.../php/arrivee.php on line 33
echo $nom; // avec un ; à la fin

par albat » 10 août 2006, 12:06

  1. Faudra aussi m'expliquer la différence entre les cas 'Ar1' et 'Ar2' ;
    les requêtes exécutées me semblent identiques.
  2. date étant un mot réservé, il est interdit de l'utiliser pour nommer un champ.
  3. Le comparateur LIKE fonctionne avec le caractère générique %.
  4. Sors les variables de tes chaînes de caractères.
    // après avoir renommé date en champ_date et complété le LIKE...
    $requete1 = "UPDATE table1 SET 'date'='$lejour' WHERE `nom` like '$nom'";              //pas bien !
    $requete1 = "UPDATE table1 SET champ_date='".$lejour."' WHERE nom LIKE '%".$nom."%'";  // bien ! 

par AnT. » 10 août 2006, 12:03

lorsque je fais le test suivant :
case 'Ar1' :
$requete1 = "UPDATE table1 SET 'date'='$lejour' WHERE `nom` like '$nom'";
$execution = mysql_db_query("mabase", $requete1);
$requete2 = "UPDATE table1 SET arrive1='$lheure' WHERE `nom` like '$nom'";
$execution = mysql_db_query("mabase", $requete2);

case 'Ar2' : 
echo $nom // <- modif ici en ligne 33 
j'ai l'erreur suivante :

Code : Tout sélectionner

Parse error: syntax error, unexpected T_ECHO in /mnt/.../php/arrivee.php on line 33
ce qui me fait dire que j'ai pas du fermer un truc dans le paquet précédent, mais je trouve pas où.

---
Bonjour,

Il manquerai pas un "deux point" là:
Code:
case 'Dp1'
Si, merci, c'est corrigé, mais ca marche tjs pas ... on cherche ;-)