JeuWeb - Crée ton jeu par navigateur
Manière d'alléger son code - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Manière d'alléger son code (/showthread.php?tid=2055)

Pages : 1 2 3 4


RE: Manière d'alléger son code - Sephi-Chan - 27-11-2007

Il doit y avoir une Foreachite aigue qui sévit sur le forum, j'ai l'impression de ne lire que des trucs à ce sujet ces derniers jours.


Sephi-Chan


RE: Manière d'alléger son code - naholyr - 27-11-2007

Y a surtout une rien-pigite aigue oui...

@oxman, complètement HS ton commentaire :?


RE: Manière d'alléger son code - MyHeadXplod - 27-11-2007

Citation :Vous comprenez bien qu'un foreach n'a RIEN à faire là dedans, on ne parcourt pas un tableau mais les lignes d'un résultat de requêtes, qui ne sont accessibles que l'une après l'autre via les fonction mysql_fetch_*().

lol excusez moi monsieur l'ingénieur ^^

Je pensais qu'on parlait de boucler sur un tableau de résultat de requête du coup je me suis empressé de balancer ce que je faisais pour parcourrir les résultats. Sympas les explications en tout cas, si t'en as d'autres n'hésites pas. Ca fait du bien un peu de perfectionnisme dans ce monde bordelique xD


RE: Manière d'alléger son code - MyHeadXplod - 28-11-2007

Salut !

Désolé je n'arrive pas à percuter la différence entre mysql_fetch_row() et mysql_fetch_array().
mysql_fetch_row() retourne un tableau associatif (index est une chaîne de caractère) et mysql_fetch_array() retourne un tableau simple (index est un nombre).
Concrètement dans son utilisation ça change quoi?

Par exemple si je fais :

Citation :while($ligne = mysql_fetch_array($resultat))
{
echo $ligne['id'];
echo $ligne['champ1'];
echo $ligne['champ2'];
}

est-ce que l'utilisation de mysql_fetch_row() changerait quelque chose?

Est-ce que vous pensez qu'il est intéressant d'utiliser mysql_free_result() régulièrement?


RE: Manière d'alléger son code - Zamentur - 28-11-2007

il ya fetch_row, fetch_array et fetch_assoc...

fetch_row renvoie des index sous forme de nombre(la position des colone dans la requete)
fetch_assoc sous forme de chaine de caractere (le nom des colone)
fetch_array renvoie les 2 Smile

Pour plus d'info je te conseil de regarder dans la reference php
http://de3.php.net/manual/fr/


RE: Manière d'alléger son code - Plume - 28-11-2007

Citation :fetch_array renvoie les 2
Dans le cas où il n'y a pas de `noms de colonne`, il renvoit un tableau indexé numérique. Pas les 2 d'un coup, que je saches sauf erreur de ma part :heu:


RE: Manière d'alléger son code - Sephi-Chan - 28-11-2007

Il est en effet possible que tu fasses erreur ; selon PHP.net - mysql_fetch_array(), il semble qu'il puisse envoyer les deux : ce qu'il fait par défaut d'ailleurs.

Citation :result_type

Le type de tableau à récupérer. C'est une constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC, MYSQL_NUM, et la valeur par défaut est MYSQL_BOTH.


Sephi-Chan


RE: Manière d'alléger son code - Zamentur - 29-11-2007

C'est pour çà que c'est mieux d'utiliser mysql_fetch_assoc dans la plus part des cas... Enfin là c'était ce que j'en avais conclue il ya quelques temps.


RE: Manière d'alléger son code - Sephi-Chan - 29-11-2007

Exact.


RE: Manière d'alléger son code - naholyr - 29-11-2007

SELECT a+b ?

Ce cas particulier est reglé avec
SELECT a+b AS aplusb

Et mysql_fetch_array et mysql_fetch_row perdent toute raison d'etre Wink

Edit : bien vue sephi Wink