Script qui boucle......... [PHP] - PHP - Programmation
Marsh Posté le 25-10-2005 à 18:20:47
Rajoute des echo (avec durée en ms) pour savoir quel endroit est lent.
Et fait un echo de ta requette pour être sur de ce qu'elle fait.
Marsh Posté le 25-10-2005 à 18:24:31
Peut-être qu'il faudrait différencier le $result du select et le $result du insert, par exemple, en mettant :
...
$result_sel = $db->query('SELECT id, ftp1, ftp2, portFtp FROM '.TABLE_USER.'');
$nbreProprios = mysql_num_rows($result_sel);
// on met un temps d'exécution pour le script "raisonnable" (30sec c'est longtemps pas assez!)
set_time_limit($executionTime);
while ($row = mysql_fetch_assoc($result_sel))
...
Marsh Posté le 25-10-2005 à 18:33:34
merci pour vos réponses!
omega2 > il n'y a pas vraiment d'endroit lent... c juste qu'une fois qu'il a fini la boucle while, il la recommence alors qu'il ne devrait pas!
olivthill > je viens d'essayer et ca ne marche pas... (tjs pareil donc!)
Marsh Posté le 25-10-2005 à 18:43:57
S'il reprend la boucle while, c'est que t'as une autre boucle ailleur. Je vois que ça comme cause possible au vu de ton code.
Marsh Posté le 25-10-2005 à 18:58:26
non, c le seul code que j'ai.... pas d'autre boucle!
Mais y'a du nouveau
Si je mets $result_ins ET un echo juste après la requete d'INSERT, ca marche
Code :
|
je comprends rien...
Marsh Posté le 25-10-2005 à 19:09:03
t'es sur que t'es pas partie sur des doubles clics ou d'autres coneries du genre?
Mon ancien patron était de ce genre là et c'est super reloux quand tu es en pleine création du site.
Marsh Posté le 25-10-2005 à 19:10:36
tu as essayé de faire un echo de ta requete pour l'executer et voir si elle passe ?
edit: l'executer manuellement bien entendu
Marsh Posté le 25-10-2005 à 19:49:20
omega2 > non non, pas de double-clic
misterpinguin > la requete passe nickel!
Marsh Posté le 25-10-2005 à 20:26:02
et en faisant la requête normalement sans passer par ta classe: mysql_query(ta_query) ? (on ne sait jamais)
Marsh Posté le 26-10-2005 à 13:17:22
art_dupond a écrit : et en faisant la requête normalement sans passer par ta classe: mysql_query(ta_query) ? (on ne sait jamais) |
ouais, ca j'ai pas encore testé, vais essayer!
Marsh Posté le 26-10-2005 à 20:08:17
re
bon, avec ce code, mon script s'éxécute 2x -> j'ai 154 enregistrements dans ma table après avoir lancé le script 1x (il ne devrait y en avoir que 77, soit pile la moitié!)
Code :
|
voilà ce que j'ai dans la table après 1 passage :
Code :
|
colonne1 = id / colonne2 = idPersonne / colonne3 = date
les autres bout de code n'ont pas changé...
c vraiment la galère :\
Marsh Posté le 26-10-2005 à 20:53:56
T'es sur que t'a pas simplement 2 fois les même proprio dans la table TABLE_USER ?
Nettoie la ou fait un select distinct pê
Marsh Posté le 02-11-2005 à 17:45:02
non! absolument certain!
mais là je test encore qqch d'autre.... j'espère que ca marchera, commence franchement à m'énerver ce problème!!! --> je mets d'abord tout dans un tableau et ensuite je mets le tout dans la BDD!
@++
Marsh Posté le 02-11-2005 à 18:18:23
Si pas encore fait, fait un print_r de ton tableau avant envoie vers mysql.
L'erreur vient peut être de lui.
Marsh Posté le 02-11-2005 à 23:39:30
1/bon déjà un truc qui fache : SELECT * pour en tirer un nombre de ligne dont le resultat de sert pas, remplace par SELECT COUNT(*)
2/.'' à la fin des requetes tu peux t'en passer
3/ quand tu selectionne, insere ou met à jour des données numériques dans mysql, les '' te servent à rien
4/vérifie qu'à ton insert ca te retourne bien true et non false
5/ fait un echo de $nbreProprios voire combien t'as de lignes retournées
6/ ton user utilisé pour la connexion mysql a t il bien les droits en insertion ?
7/mets on @ devant fsockopen, qui te plante le script normalement si probleme d'url(je crois)
8/error_reporting(E_ALL); en haut du script
Marsh Posté le 03-11-2005 à 00:49:23
1 si ça sert
2 pk pas
3 ?
4 C déja verifié avec le !$result_query ligne 34
5 oui, je serais plus pour le print_r proposé
6 à priori oui sinon cf 4
7 me parait contradictoire à 8. Faut choisir, ou tout propre ou tout sale non ?
Moi je continue à penser qu'on a 2 fois les même id. Un 'SELECT DISCTINCT id ...' dans la première requete doit resoudre tout ça
Marsh Posté le 03-11-2005 à 09:18:19
Ricco > 1 : il veut dire que tu ne fait que vérifier le nombre de lignes retourné et pas les donnée retrourné elles même.
2 : C'est vrai qu'un .'' ca sert strictement à rein.Dire à php qu'il doit rajouter rien, ca lui fait perdre du temps vu qu'il est obliger de traiter cette demande qui ne change rien.
3 : Quand t'envoie un nombre à uen base de donnée, il ne sert à rein de lui faire croire que c'est une chaine de caractére. Ca oblige la base de donnée à refaire un traitement derriére pour transformer la chaine de caractére en nombre.
4 : lignes 38 et 43 de ton premier script, c'est vrai que tu ne vérifie pas si l'insertion ou la supression se sont bien passé. Regarde donc ce qu'il en est en utilisant "mysql_affected_rows". C'est une fonction qui est justement fait pour indiquer le nombre de lignes touché par des insert, update, delete, truncate, replace, ...
Marsh Posté le 25-10-2005 à 18:11:26
J'ai un monster problème de script qui boucle... a devenir taré
Voilà le script principal:
Avec cette ligne, le script boucle :
Et si je la remplace avec cette ligne, ca tourne :
Pourtant ma méthode query() fonctionne très bien, je l'utilises pas que dans ce script...
A noter : le script tourne nickel en local (easyphp + php5 + mysql)! Il boucle uniquement "online"....
la fonction ServerOnline()
La méthode query() de ma classe database.php
Merci d'avance à tous ceux qui pourront m'aider
@++
Message édité par le_duc le 25-10-2005 à 18:36:26