PHP et MySQL problème avec des boucles!! [RESOLU] - PHP - Programmation
Marsh Posté le 22-02-2007 à 11:28:42
ba déjà tu cherche tous les éléments de ta liste, chose que tu ne devrais pas faire.
Ensuite, quand tu explode la première fois il dois te créer une liste tel que :
liste[1]=fred FR
liste[2] =[espace] andrea DE....
lorsque tu explode la seconde fois, tu devrais claquer tout ça dans un tableau
$liste2[$i][]= explode(" ",$liste[$i]);
et une fois que tu as ce tableau, faire ta boucle pour lancer tes requêtes, mais uniquement avec la première colonne de liste2.
Marsh Posté le 22-02-2007 à 11:39:55
Merci mais je ne peux pas faire de tableau à 2 dimension avec le explode....
Marsh Posté le 22-02-2007 à 11:46:15
Avec explode tu fais un tableau à 1 dimlension certe, mais que tu stocke dans un tableau à 1 dimension... donc tu obtien un tableau à 2 dimensions.
Marsh Posté le 22-02-2007 à 11:54:00
Au risque de passer pour une boulette...tu peux m'écrire la ligne de code s'il te plaît? Parce-que j'y arrive pas...
Marsh Posté le 22-02-2007 à 12:24:33
Code :
|
normalement ça le fait... mais bon j'ais toujours des surprises avec les tableaux...
Si ça passe pas essaye ça :
Code :
|
Marsh Posté le 22-02-2007 à 12:33:22
Merci beaucoup!!Je récupère uniquement les noms....ms le problème est toujours là...La requête ne marche pas!;-(
Je te remets mon code:
Code :
|
ça rentre jamais ds le while!!
Marsh Posté le 22-02-2007 à 13:26:27
j'avais oublié un point fondamental ... l'incrémentation de la variable $i... (tête en l'air.. oui un peu )
Code :
|
concaténation de chaine da caractére...... notion à revoir
EDIT : alors vi, j'ais séparé les deux boucles foreach.. tu peux trés bien les laisser ensemble, mais disons que vu qu'elles font deux choses différentes, ce sera plus facile par la suite à séparer en fonctions.
Marsh Posté le 22-02-2007 à 14:53:04
Hélas...ça ne marche toujours pas....
Si j'affiche la valeur de $element2[0], c'est bein es bonnes valeurs ms ds la requête seule la première marche.
Comme au tout début...
Marsh Posté le 22-02-2007 à 15:15:19
et si tu affiche tes requêtes avant de les envoyer ?
Code :
|
tu pourrais afficher ce que ça donne ?
Code :
|
EDIt : yavais une erreur dans ton while
Marsh Posté le 22-02-2007 à 15:34:16
y'avait pas d'erreur ds mon while! C'était quoi l'erreur?
Bon alors un truc de fou.....Gra^ce à ton test g pu m'apercevoir que ce qui me fait ch$$$ depuis 2 jours....c'est: un espace avant le nom!!!!
$element2[0] me retourne " renaud" par exemple!!
C'est fou ça hein??
Marsh Posté le 22-02-2007 à 15:46:10
ba.... le while($sql4 AND $data etc...) le $sql4 te sert à quoi ... (j'avoue n'avoir j'amais vu).
Quand à l'espace.. je l'avais mentionné quelque post au dessus...
Marsh Posté le 22-02-2007 à 15:56:52
c vrai????Non non je n'ai pas soupçonné ça..en tout cas je te remercie!!!
Je commençais à désepérer...
Bonne journée et à bientôt peut-être!;-)
Marsh Posté le 22-02-2007 à 16:00:09
... en tournant autour du probléme... ou y arrive quand même bonne continuation
Marsh Posté le 22-02-2007 à 16:13:15
ouai ms faut tourner longtemps..et toute seule je m'essouffle !!Merci
Marsh Posté le 22-02-2007 à 16:30:00
chani_t a écrit : ba.... le while($sql4 AND $data etc...) le $sql4 te sert à quoi ... (j'avoue n'avoir j'amais vu). |
Ca permet de tester implicitement (php style) si $sql4 est une ressource non nulle, vu qu'elle est utilisée juste après dans le fetch()
On peut faire plus parlant :
Code :
|
mais j'ai jamais bien compris l'utilité de faire ce genre de tests en php
Marsh Posté le 22-02-2007 à 16:54:24
si $sql4 n'est pas une ressource ( erreur SQL , perte de connexion a la bdd , ... ) et que ton serveur est configurer pour t'afficher les warning, tu as nue belle ligne t indiquant que sql4 n'est pas une ressources
Marsh Posté le 22-02-2007 à 16:56:34
mouais... ok, bon je pense pas que je le ferai de manière implicite, je préfere le faire explicitement ... m'enfin c'est bon à savoir.
Marsh Posté le 22-02-2007 à 17:23:59
Et côté vitesse d'exécution, le test implicite comme ça, direct dans la boucle, s'effectue à chaque itération du while(), bouffant ainsi une quantité inconsidérée de temps CPU
Marsh Posté le 22-02-2007 à 10:48:51
Bon j'estime que passer plus d'1 jour à bloquer sur un truc si bête c'est trop...
Voilà donc mon problème:
Je récupère des données d'un formulaire sous cette forme: "fred FR; andrea DE; sabine IT;...." donc g des noms et leur langue. Mon but est de dissocier les 2 car je dois aller chercher ds ma bd les login correspondants aux noms.
J'utilise donc 2 fois la fonctin explode, une fois pour les ";" et une fois pour les " ".
Je vous montre mon code et je vous mets quelques commentaires et les traces des echo:
Voici ce que ça me retourne:
we search fred login t_fred we search FR we search andrea we search DE we search sabine we search IT
En fait il ne cherche que la première valeur ds la bd alors que la valeur $liste2[$j] est bien correcte!
Je voudrais que ça retourne:
we search fred login t_fred we search FR we search andrea login t_andrea we search DE we search sabine login t_sabine we search IT
Si vous pensez connaître la solution à mon problème sahez que ça peut changer ma journée!!
Merci d'avance
Message édité par acorsa le 22-02-2007 à 16:13:33