Requête MySQL qui fonctionne dans PhpMyAdmin mais pas dans mon script - PHP - Programmation
Marsh Posté le 26-09-2007 à 18:50:57
par curiosité, tu utilises des variables MySQL, c'est bien ca ?
sinon tu ne peux pas executer plusieurs requetes en meme temps. Phpmyadmin les dispatch automatiquement.
Pour avoir le type d'erreur => mysql_error()
Marsh Posté le 26-09-2007 à 19:18:34
Oui, les variables MySQL (c'est la 1ère fois).
J'avais mis des point-virgules à la fin pour enchainer,
c'est peut être ça ?
Je dois en faire 3 ?
l'erreur que j'ai dans le log :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; SELECT @nb := count(*) FROM T_USR_USER where USR_DATE_LAST =;
Marsh Posté le 26-09-2007 à 19:22:37
J'ai essayé en 3 fois,
pas d'erreur, mais pas de changement de valeurs...
(comme si les variables ne transmettaient pas leur valeurs)
Marsh Posté le 26-09-2007 à 19:59:51
Si t'utilises les variables, elles disparaissent une fois la requête éxécutée je pense, c'est normal que ça change rien.
Soit fais ça avec une procédure stockée, un trigger, un script qui gère les valeurs
Marsh Posté le 27-09-2007 à 18:25:41
MERCI !
Bon, je fais 3 requêtes, et récupères les variables via php.
Ce qui donne :
Code :
|
Marsh Posté le 27-09-2007 à 18:48:42
A tester pour voir vu que t'es en mysql:
Citation : UPDATE T_STA_STATS T1,T_STA_STATS T2 |
Par contre je ne garantie pas le résultat (pas testé) ni la vitesse (requête imbriqué)
Je pense qu'il est également possible de faire la même chose avec moins de perte de vitesse en faisant une requête du genre :
Citation : UPDATE T_STA_STATS, |
La encore je n'ai pas testé donc je ne suis pas certain à 100% que ça marche sans erreur mais normalement ça devrait être bon.
A noter que c'est pas des façons très habituelle de faire et la seconde risque de ne marcher qu'avec mysql.
Marsh Posté le 28-09-2007 à 03:07:56
J'avais pas pensé aux requêtes imbriquées dans ce cas, j'avais même pas regardé ce que tu voulais.
En effet doit y'avoir moyen de le faire autrement en une requête imbriquée si t'as un mysql >=5
Tu veux faire quoi au juste Pourquoi un update et pas simplement un insert une fois par jour Ton tuple est crée au début de la journée (ou au premier connecté de la journée) et tu le mets à jour toutes le x minutes, c'est ça
En gros la date en question tu la connais ou faut aller la chercher (vu que c'est la dernière apparement) ?
Parce que y'a même pas besoin d'aller chercher si loin si tu connais la date dès le départ
Marsh Posté le 29-09-2007 à 10:21:44
Le where USR_DATE_LAST = max(STA_DATE) ne marche justement pas... (snif)
J'essaies d'être compatible avec le plus de versions possibles de MySQL et php (vu que c'est un script redistribué).
Je fais cet update, justement, juste AVANT l'insert de la ligne de stats du jour : donc je récupère les valeurs de la veille.
(pour afficher celle du jour, que je recalcule en live)
Marsh Posté le 26-09-2007 à 18:42:16
Bonjour,
j'arrive a exécuter la requête SQL dans PhpMyAdmin,
mais dans mon script, j'ai systématiquement une erreur...
Quelqu'un aurait une idée s'il vous plait ???
Ce que fait la requête :
- récupération de la date maxi enregistrée dans les stats
- récupère le nombre d'utilisateur qui ont comme dernière date d'utilisation cette date là.
- mise à jour de la ligne avec la valeur trouvée à la date indiquée.