CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

While + my_sql_fetch_array = pas fiable?

LeChausson
LeChausson
Niveau 5
30 mars 2012 à 23:58:16

Bonjour,

Voici un bout de code php :
http://wall.deblan.fr/x2164/php/0/

Dans ma base, il y a une entrée dans la table hey_connectés :
pseudo = "test"
date = 194523
pourcentage = 30
averti = "non"

Lorsque j'éxécute la page contenant ce code, il doit s'afficher :
"[1] connectés : <br /><img src="images/waiting.gif"> <font color="#790003">test</font> <font size="2" color="#AAAAAA">[30%]</font><br />"

Cela fonctionne bien. Disons 49 fois sur 50.

Ce script est appelé via ajax toutes les 3 secondes, et il arrive qu'il affiche après un appel (donc pendant 3 secondes, le temps qu'il soit appelé à nouveau) :
"0 connectés ?! <br />(1 resultat trouvé)"

Evidemment, j'ai ajouté le code traitant le cas "$nombre_connectes == 0" après avoir constaté le problème; et le résultat donné est d'autant plus étrange.

Parfois donc, le script dit qu'il n'est pas passé par la boucle while (car $nombre_connectes ne s'est pas incrémenté) mais que pourtant le tableau à parcourir n'est pas nul et contient un résultat (et donc qu'on aurait du passer dans la boucle while une fois)

Je ne comprends pas ...

Si quelqu'un peut m'éclairer, je serais ravi !

deepblue
deepblue
Niveau 16
31 mars 2012 à 00:30:29

$foo = 0;
echo count($foo); // 1

LeChausson
LeChausson
Niveau 5
31 mars 2012 à 03:16:20

En effet, j'ai remarqué ça ensuite.

Cependant, ca ne résoud pas mon problème.

my_sql_fetch_array n'est donc pas une fonction fiable ?

Elle peut se tromper et ne donner parfois aucun résultat alors qu'il y en a un ? Dois-je contacter mon registar à ce propos ?

Je suis le seul à avoir accès au serveur... si il y a un tel problème, j'ai du mal à imaginer la réaction de la plateforme dès qu'il y aura des utilisateurs.

vava740
vava740
Niveau 10
31 mars 2012 à 08:12:47

J'ai plus l'habitude d'utiliser un PDO pour les requêtes SQL mais j'ai déjà utilisé les fonctions mysql_* en cours et jamais eu de problème...

Par contre on a toujours rajouté une ligne de plus entre la requête et le fetch_array;

$count = mysql_num_rows($query); // On compte le nombre de résultats issus de la requête
if($count > 0) { // Si on a au moins un résultat

Et on mettait là les instructions. :ok:
Tu peux aussi rajouter une condition else après pour le cas où il n'y a aucun résultat trouvé.

bob63
bob63
Niveau 11
31 mars 2012 à 09:17:36

vava740 > Moi j'utilise pas souvent le *_num_rows. Je passe directement dans la boucle. La condition fetch_array gère directement le fait qu'il n'y a pas d'enregistrement.

C'est juste à toi de vérifier que la valeur que tu retour ensuite dans le return $this->Valeur soit pas vide ...

Sinon j'ai jamais eu de soucis avec ces fonctions, elles se trompent jamais. Tu dois avoir une bavure dans ton code ou alors ton code ajax qui récupère des "caractères" à un moment donnés qui font plantés ta requête. Tu as le code ?

Thymotep
Thymotep
Niveau 10
31 mars 2012 à 09:48:55

La fonction ce nomme mysql_fetch_array déjà, ensuite tu code comme un pied, la balise <font> et le style en HTML c'est déprécié depuis de nombreuses années, manque des attributs à ta balise img aussi ... si déjà tu corrige çà, ensuite tu pourras penser au PHP non ? :(

LeChausson
LeChausson
Niveau 5
31 mars 2012 à 18:20:46

Bonjour,

@Thymotep:
Je ne recherche pas de cours de W3C :hap:
Si ca peut faire plaisir, sache que le résultat est le même si j'enlève toutes ces balises et que je rajoute les attributs tant appréciés.
Mais merci quand même.

@Others:
J'ai essayé avec 2 enregistrements dans la BDD, il arrive qu'il n'en soit trouvé qu'un. Et proportionellement... Bien je vais re-re-revoir mon code, en modifiant des morceaux et dès que le problème ne se présente plus -si je n'ai pas compris par moi-même- je poste ici le bout de code qui pose problème :)

deepblue
deepblue
Niveau 16
31 mars 2012 à 22:54:26

si ça ne passe pas dans la boucle c'est que ta requête ne retourne rien./

LeChausson
LeChausson
Niveau 5
01 avril 2012 à 03:42:03

Oui, je l'avais constaté. Le pourquoi est d'ailleurs le sujet du topic.

deepblue
deepblue
Niveau 16
01 avril 2012 à 10:39:00

Bah ta requête est soit foireuse, soit elle fonctionne mais ne te file aucun résultat.

Revois ta requête.

VideLaDerriere
VideLaDerriere
Niveau 3
05 avril 2012 à 08:22:27

Résolu. Il semblerait qu'ajax arrivait à ouvrir plusieurs fois un même script... j'ai pu gérer ça grâce aux sessions et tout fonctionne bien.

En passant, merci Thymotep, j'ai découvert les joies du css tout joli en décidant de lâcher les font pour des spans (pas graphiste de naissance :( )

LeChausson
LeChausson
Niveau 5
05 avril 2012 à 08:23:20

Ben voyons.. mon frère qui se déco pas :hap:
(Le message précédent est bien de moi)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment