Voici un problème pour le PHP-jongleur en vous. Je veux utiliser plaine-ol 'mysql_ * fonctions de PHP.Mise à jour avec une valeur incrémentée basée sur la ligne correspondante
J'ai la table MySQL suivante:
+-----+-----------------+ | id | thread | +-----+-----------------+ | 14 | 01/ | | 14 | 02/ | | 14 | 03/ | | 15 | 01/ | | 22 | 01/ | | 24 | XXX | | 24 | XXX | | 24 | XXX | | 24 | XXX | | 32 | XXX | | 32 | XXX | +-----+-----------------+
Les valeurs "XXX" sont ma décision. Je souhaite modifier (UPDATE) cette table à celui-ci:
+-----+-----------------+
| id | thread |
+-----+-----------------+
| 14 | 01/ <- |
| 14 | 02/ |
| 14 | 03/ |
| 15 | 01/ <- |
| 22 | 01/ <- |
| 24 | 01/ <- |
| 24 | 02/ |
| 24 | 03/ |
| 24 | 04/ |
| 32 | 01/ <- |
| 32 | 02/ |
+-----+-----------------+
Sur chaque nouvelle valeur du champ « id » (où le « < - » est, ma décision, aussi), le « fil "La valeur du champ doit se réinitialiser à" 01/"et continuer à incrémenter jusqu'à ce qu'une nouvelle valeur de" id "soit trouvée.
J'ai essayé d'interroger avec COUNT (id) pour incrémenter d'une manière ou d'une autre. J'ai essayé de stocker dans les tableaux. J'ai aussi pensé à mysql_data_seek(). Hélas, je ne semble pas l'enlever.
J'obtenu le droit de format "fil", bien que:
$thread = $i < 10 ? "0$i" : $i;
Donc, si elle est supérieure à 10, il ne reçoit pas un zéro. Mais c'est juste la partie amusante.
Toute aide serait appréciée.
Merci
Je vais essayer ça. Semble trop complexe à manquer. Que voulez-vous dire par "nourrir les requêtes SET & UPDATE séparément"? – nevvermind
Que vous ne pouvez pas les envoyer en une seule requête, mais en tant que 3 ('mysql_query ('SET ...'); mysql_query ('SET ...'); mysql_query ('UPDATE ...');'.Il utilise des variables définies par l'utilisateur, et la complexité principale provient de la lutte contre SQL: vous ne pouvez pas "définir" une variable sauf si elle fait partie d'une expression, donc un simple @counter: = 1, @oldid: = id est devenu un expression alambiquée avec le même résultat: '@counter: = (@oldid: = id)/id', ce qui peut entraîner un float, donc nous avons renvoyé à integer. – Wrikken
Nice. Pourriez-vous s'il vous plaît expliquer ou envoyer un lien combien de temps va durer la variable mysql @counter: jusqu'à la fin de la requête, la fin du script PHP ou réinitialiser le serveur mysql? Je ne le trouve pas. –