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 :

[SQL] pb syntax delete sql


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Points : 37
    Points
    37
    Par défaut [SQL] pb syntax delete sql
    bonjour à tous, encore une fois un pb que je n'arrive pas à régler:

    voici la syntax:

    $deleteSQL = sprintf('DELETE FROM pages WHERE users_id=%s AND Titre='.$_POST['checkbox'],
    GetSQLValueString($_SESSION['MM_UserID'], "int"));

    voilà l'erreur:
    Unknown column 'jljhkhlkh' in 'where clause'

    'jljhkhlkh' = la valeur de la checkbox

    auriez vous un idée de ma n ème boulette ?

    merci d'avance

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Salut

    As-tu fais un affichage de ta requete avant de l'envoyer, pour voir ce qu'elle contenait précisément?

    Ensuite je dirai qu'il vaut mieux récupérer le users_id dans un premier temps et construire ensuite la requete sql avec. Parce qu'entre les ", les ', les caractères spéciaux etc, construire une requete avec de la concaténation et des sprintf etc ca peut poser pas mal de problemes...

  3. #3
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $deleteSQL = sprintf("DELETE FROM pages WHERE users_id=%s AND Titre='" . $_POST['checkbox'] . "'", GetSQLValueString($_SESSION['MM_UserID'], 'int'));

  4. #4
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Salut,

    ta requête est entre quote ( ' )
    c'est-à-dire que toutes les variables que tu mettras dedans ne sera pas lue comme une variable :
    $a = "kikoo";

    echo "la personne dit : $a";
    //Affiche : la personne dit kikoo

    echo 'La personne dit : $a';
    //Affiche : la personne dit : $a

    echo 'La personne dit : '.$a;
    //Affiche : la personne dit : kikoo

    donc ton erreur est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $deleteSQL = sprintf('DELETE FROM pages WHERE users_id='.%s.' AND Titre="'.$_POST["checkbox"].'",
                           GetSQLValueString("'.$_SESSION["MM_UserID"].'", "int")');

  5. #5
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    je vois pas le rapport avec l'interpretation des variables...
    dans sa ligne (fausse ok, mais pas sur ce point), son $_post est bien en dehors des quotes
    les %s, %d... c'est des indicateurs de formats et syntaxiquement, il n'a pas d'erreur là dessus

    et j'ai pas trop compris ta ligne de code dj-julio, le getsqlvaluestring il est pas dans la requête mais c'est un des paramètre du sprintf... ou tu t'es mangé dans des apostrophes ou t'as pas bien compris le truc

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Points : 37
    Points
    37
    Par défaut c pas encore çà...
    bon déjà merci pour vos réponses aussi rapides...

    en ce qui concerne la suite voilà le résultat avec la requete suivante:


    $deleteSQL = sprintf('DELETE FROM pages WHERE users_id='.%s.' AND Titre="'.$_POST["checkbox"].'",
    GetSQLValueString("'.$_SESSION["MM_UserID"].'", "int")');
    erreur:

    Parse error: syntax error, unexpected '%' in confirm-suppr-page.php on line 30

    g donc fais la modif suivante:

    $deleteSQL = sprintf('DELETE FROM pages WHERE users_id=%s AND Titre="'.$_POST["checkbox"].'",
    GetSQLValueString("'.$_SESSION["MM_UserID"].'", "int")');

    et maintenant g l'erreur suivante:

    Warning: sprintf() [function.sprintf]: Too few arguments in confirm-suppr-page.php on line 31
    Query was empty

    serieux c la galère les syntax pour les requetes....

    merci d'avance

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Points : 37
    Points
    37
    Par défaut ca fonctionne!!
    merci bien pour votre aide:

    la syntax correct est celle de dia_fr:

    $deleteSQL = sprintf("DELETE FROM pages WHERE users_id=%s AND Titre='" . $_POST['checkbox'] . "'", GetSQLValueString($_SESSION['MM_UserID'], 'int'));

    merci encore

    bonne fin de journée

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 02/05/2006, 16h07
  2. [PL/SQL Oracle] Syntaxe dans clause where
    Par Misdrhaal dans le forum Oracle
    Réponses: 2
    Dernier message: 01/03/2006, 13h33
  3. [SQL Server 2000] Delete et alias
    Par Sebounet19 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 31/07/2005, 14h17
  4. [SQL] select syntaxe
    Par Leila75 dans le forum Oracle
    Réponses: 3
    Dernier message: 10/05/2005, 11h05
  5. Syntaxe requête SQL
    Par Mvu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/07/2004, 14h27

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