Erreur de syntaxe pour un update de base access - PHP - Programmation
Marsh Posté le 28-08-2006 à 14:07:09
faut mettre "UPDATE dde_fab SET etat=\"$etat\" WHERE url=\"$url\""
Marsh Posté le 28-08-2006 à 14:14:57
Merci rufo mais j'obtines ceci a présent :
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'url=[../../fichiers/demandes_sce_outillage/Demande_Fabrication] VALUES (Réalisée)'., SQL state 37000 in SQLExecDirect in c:\traitement.php on line 22
Marsh Posté le 28-08-2006 à 14:48:51
Juste une question, a quoi te sert la derniere partie de ta requete ? (Values($etat)) ????
Marsh Posté le 28-08-2006 à 14:51:00
bien joué....à rien du coup.
je l'avais viré (copié-coller d'une autre page de code) mais j'ai dû faire un ctrl+Z de trop !
Néanmoins, mon pb n'est toujours pas réglé...
Marsh Posté le 28-08-2006 à 14:53:21
Remplace ca :
Citation : $query = "UPDATE dde_fab SET etat=$etat WHERE url=$url "; |
Par ca
Code :
|
Marsh Posté le 28-08-2006 à 14:58:38
merci jbourdellon
Nouveau msg d'erreur :
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données ne peut pas trouver ''. Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\legris\formulaires\dde_fab\traitement.php on line 21
Marsh Posté le 28-08-2006 à 15:00:33
est ce que tu es sur que tes variables $etat et $url sont complétées ?
Marsh Posté le 28-08-2006 à 15:13:24
justement c ce que je regardais....
et bien non en fait, il m'en manque un bout !
Pour ma variable $url je devrais obtenir un truc du genre :
../../fichiers/demandes_sce_outillage/Demande de Fabrication tata du 28-08-2006.pdf
et là j'obtiens :
../../fichiers/demandes_sce_outillage/.'Demande_Fabrication'
Par contre $etat est bon
Marsh Posté le 28-08-2006 à 15:19:02
Citation : ../../fichiers/demandes_sce_outillage/Demande de Fabrication tata du 28-08-2006.pdf |
Citation : ../../fichiers/demandes_sce_outillage/.'Demande_Fabrication |
qu'il manque un bout je comprend bien mais que la chaine de caractere soit modifiée c'est plus bizarre
et dans ta table qu'est ce que tu as comme url pour cette entrée ?
Marsh Posté le 28-08-2006 à 15:20:25
../../fichiers/demandes_sce_outillage/Demande de Fabrication tata du 28-08-2006.pdf
Marsh Posté le 28-08-2006 à 15:20:56
je t'explique le principe du truc:
formulaire envoyé par mail de type HTML
dans ce mail HTML, un champs "hidden" name=url -> chemin du fichier PDF généré à partir du formulaire
Ce mail contient donc un nouveau formulaire HTML envoyé en GET au changement d'état.
Ensuite, update de la BD access en fonction du changement d'état
Marsh Posté le 28-08-2006 à 15:31:07
Oui ca j'avais compris Affiche voir :
- les valuers de $etat et d' $url
- ta requete
- et la réponse de SELECT * from dde_fab where url like "Demande%"
Marsh Posté le 28-08-2006 à 15:36:20
../../fichiers/demandes_sce_outillage/
En cours
UPDATE dde_fab SET etat="En cours" WHERE url="$url"
SELECT * from dde_fab where url like "Demande%"
Marsh Posté le 28-08-2006 à 15:41:18
Citation : UPDATE dde_fab SET etat="En cours" WHERE url="$url" |
Tu as bien mis ca
Code :
|
T'es sur ?
Citation : SELECT * from dde_fab where url like "Demande%" |
C'est le resultat de la REQUETE que je voulais....
Marsh Posté le 28-08-2006 à 17:03:29
quand je mets ce $query j'obtiens :
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données ne peut pas trouver ''. Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\legris\formulaires\dde_fab\traitement.php on line 36
Par contre, maintenant j'ai bien la valeur de $url. ça c réglé. Mais les valeurs ne changent pas dans ma BD et g tj ce msg d'erreur
Marsh Posté le 29-08-2006 à 08:34:02
up
Mon code correspond désormais à ça :
Code :
|
et mon message d'erreur est toujours le suivant :
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Le moteur de base de données ne peut pas trouver ''. Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\....\traitement.php on line 66
Marsh Posté le 29-08-2006 à 09:52:04
Citation : $query = 'UPDATE dde_fab SET etat="'.$etat.'" WHERE url like "'.$url.'"'; |
Essaye voir plutot ca :
Code :
|
Marsh Posté le 29-08-2006 à 09:57:10
Salut jbourdellon
J'obtiens desormais un nouveau message d'erreur :
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in traitement.php on line 66
et rien ne change ds ma BD
Marsh Posté le 29-08-2006 à 10:09:18
j'arrive pas.
je fais ça
Code :
|
et j'obtiens :
Warning: odbc_fetch_array(): supplied argument is not a valid ODBC result resource in traitement.php on line 71
Marsh Posté le 29-08-2006 à 10:10:37
Comment ca t'arrives pas afficher ta requete,
juste en dessous de
$query='xxxxx';
tu fais un
echo $query;
????
Marsh Posté le 29-08-2006 à 10:14:37
Quand tu fais ca :
Citation : while ($row = odbc_fetch_array($result) ) |
le result que tu passe en paramètre c'est quoi, c'est celui la ?
Citation : $query = 'UPDATE dde_fab SET etat="'.$etat.'" WHERE url like "'.$url.'"'; |
Dans ce cas c'est normal un UPDATE ne retourne pas la ligne modifée mais juste le nombre de lignes modifiées...
Marsh Posté le 29-08-2006 à 10:15:51
j'obtiens ça en utilisant or die :
UPDATE dde_fab SET etat="Réalisée" WHERE url like '../../fichiers/demandes_sce_outillage/Demande_Fabrication SNP ESSAI 29-08-2006.pdf'
Marsh Posté le 29-08-2006 à 10:17:40
Citation : $query = 'UPDATE dde_fab SET etat=\''.$etat.'\' WHERE url like \''.$url.'\''; |
Modifie la aussi
Marsh Posté le 29-08-2006 à 10:26:39
La requete :
UPDATE dde_fab SET etat='Réalisée' WHERE url like '../../fichiers/demandes_sce_outillage/Demande_Fabrication SNP ESSAI 29-08-2006.pdf'
Plus de msg d'erreur par contre la BD n'est pas updatée !
Marsh Posté le 29-08-2006 à 10:40:08
dans ma BD le champ "etat" de Demande_Fabrication SNP ESSAI 29-08-2006.pdf' ne change pas.
Il devrait passer de "en attente" à "en cours"
Marsh Posté le 29-08-2006 à 10:50:42
ben déjà elle pourra pas passer à 'en cours' vu que tu fais un SET etat='Réalisée' ...
Marsh Posté le 29-08-2006 à 10:53:36
y'a trois état que le fabricant coche au fur et a mesure par boutons radio:
en attente (par défaut)
en cours
réalisé
quel qu'il soit ça ne se modifie pas ds la BD
Marsh Posté le 29-08-2006 à 11:46:04
bon ça marche mais c un peu usine à gaz :
Code :
|
pourquoi ça marche pas en faisant WHERE url LIKE \''.$url.'\''; ????
Marsh Posté le 29-08-2006 à 13:17:36
dans tous les cas je viens de me rendre compte que mon mon champ url etait vidé quand je fais un UPDATE
Marsh Posté le 28-08-2006 à 13:56:31
Bonjour,
j'ai un fichier PHP tout bete de traitement de mail qui m'update normalement une base de données ACCESS.
mais j'ai un message d'erreur et je n'arrive pas a trouvber d'ou ça peux provenir !!
Quelqu'un peut-il voler a mon secours SVP ?
Merci d'avance...
Voici le message d'erreur que je reçois :
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la requête. La clause de la requête est incomplète., SQL state S1000 in SQLExecDirect in c:\program files\easyphp1-8\www\legris\formulaires\dde_fab\traitement.php on line 21