Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/05/2007, 16h07   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 58
Points : 13
Points : 13
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
damien40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h12   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
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...
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h12   #3
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643
Code :
$deleteSQL = sprintf("DELETE FROM pages WHERE users_id=%s AND Titre='" . $_POST['checkbox'] . "'", GetSQLValueString($_SESSION['MM_UserID'], 'int'));
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h14   #4
Membre expérimenté
 
Avatar de dj-julio
 
Inscription : décembre 2005
Messages : 742
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : décembre 2005
Messages : 742
Points : 576
Points : 576
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 :
1
2
 $deleteSQL = sprintf('DELETE FROM pages WHERE users_id='.%s.' AND Titre="'.$_POST["checkbox"].'",
                       GetSQLValueString("'.$_SESSION["MM_UserID"].'", "int")');
__________________
Mon Site/Cv.
dj-julio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h20   #5
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643
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
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h40   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 58
Points : 13
Points : 13
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
damien40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h51   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 58
Points : 13
Points : 13
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
damien40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web