IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Parse error pour une suppression [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Par défaut Parse error pour une suppression
    bonjour ,

    Je ne sais si je suis dans le bon forum ; mais je ne voyais pas trop où casé ma question...

    Voilà le problème :

    J'ai une page de suppression qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if ((isset($_GET['article'])) && ($_GET['article'] != "")) {
      $deleteSQL = sprintf("DELETE FROM shop_panier WHERE article=%s",
                           GetSQLValueString($_GET['article'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($deleteSQL, $facevspile) or die(mysql_error());
     
      $deleteGoTo = "panier500.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
        $deleteGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $deleteGoTo));
    }
    et jusque là pas de problème . Mais je souhaite transmettre la donnée suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    article=<?php echo $row_suivis2['article'];?>";
    aussi j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if ((isset($_GET['article'])) && ($_GET['article'] != "")) {
      $deleteSQL = sprintf("DELETE FROM shop_panier WHERE article=%s",
                           GetSQLValueString($_GET['article'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($deleteSQL, $facevspile) or die(mysql_error());
     
      $deleteGoTo = "panier500.php?article=<?php echo $row_suivis2['article'];?>";
      if (isset($_SERVER['QUERY_STRING'])) {
        $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
        $deleteGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $deleteGoTo));
    }
    et j'ai eu droit à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\facevspile\Templates\suppr_panier400.php on line 40
    Je suppose que le problème vient de la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    mais je ne sais pas comment faire pour transmettre la donnée et éviter le parse ...


    Merci d'avance pour vos suggestions,

    HAbroc

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Voici le code corrigé, des erreurs de synthaxe, de logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    if ((isset($_GET['article'])) && ($_GET['article'] != "")) {
      $deleteSQL = sprintf("DELETE FROM shop_panier WHERE article=%s",
                           GetSQLValueString($_GET['article'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($deleteSQL, $facevspile) or die(mysql_error());
     
      $deleteGoTo = 'panier500.php?article='.$row_suivis2['article'];
      if (isset($_SERVER['QUERY_STRING'])) {
        $deleteGoTo .= (strpos($deleteGoTo, '?') > -1) ? '&' : '?';
        $deleteGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $deleteGoTo));
    }
    strpos ne renvoie pas un booléen, mais la position du caractère, -1 si non trouvé.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    strpos ne renvoie pas un booléen, mais la position du caractère, -1 si non trouvé.
    Non, FALSE : il faut donc procéder à un test d'égalité avec l'opérateur === (ou !== pour une inégalité) puisque si la chaîne débute par needle, strpos va renvoyer 0, assimilable à une valeur fausse en temps normal.
    Retourne la position, sous la forme d'un entier. Si needle n'est pas trouvé, strpos() retournera FALSE.

  4. #4
    Membre éclairé
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Par défaut
    Nickel !

    Merci beaucoup pour le coup de main ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parse error sur une constante
    Par Missie46 dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2006, 10h19
  2. Parse error sur une concaténation
    Par alpking dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2006, 11h15
  3. Réponses: 3
    Dernier message: 26/05/2006, 16h07
  4. Créer une contraintes pour une suppression
    Par subzero82 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/10/2005, 17h36
  5. [C#] Probleme pour une suppression
    Par kenzo080 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/06/2004, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo