Que renvoie exactement mysql_Query ? (Php My)

Résolu/Fermé
chldc Messages postés 5 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 janvier 2010 - 29 nov. 2008 à 15:02
chldc Messages postés 5 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 janvier 2010 - 29 nov. 2008 à 19:58
Bonjour,
En fait c'est une question double !
- 1 - Que renvoie exactement mysql_Query ?
(Pour qu'on ait besoin de tas d'autre fonctions pour exploiter la réponse)
- 2 - En réalité ce que je cherche à faire, c'est : partant d'une requête quelconque, je voudrais afficher les entêtes des colonnes, les enregistrements, agir sur le classement, sur le tri, bref un beau tableau avec tout le contenu bien classé, sans avoir à questionner sans arrêt la base de données.

J'ai déjà un peu avancé en faisant une page qui peut aller chercher chaque table d'une base, ajouter, modifier... mais je trouve mon code long et lourd, exemple : recharger l'ensemble des données chaque fois qu'on veut faire un tri. Il me semble qu'on pourrais avoir le résultat de la requête en mémoire (coté client) et n'accéder la la base de donnée qu'en cas de modification.
Si quelqu'un pouvait m'aider à passer ce cap, ça serait très sympa !
Voir ici l'avancement de mes travaux : http://vecchi.free.fr/nubaz.zip
Aller au dernier onglet : "AIDE" et configurer votre connexion

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 nov. 2008 à 15:30
Bonjour,


<gras>$result=mysql_query($query)</gras>

mysql_query fait la requête à la base en fonction des critères

le résultat est mis dans une zone mémoire accessible par la ressource $result

et la tu peux grâce aux fonctions offertes par php savoir combien il y a d'enregistrement trouvés, les noms des champs

pour une liste vas voir http://www.phpdebutant.org/article65.php


et bien sur exploiter les resultats en lisant ligne par ligne par une boucle

while($ligne= mysql_fetch_assoc($result)){

echo $ligne['nom_du_champ'];


}


tu peux dans ta boucle stocker dans un array et en le parcourant plus bas dans ton script l'afficher avec plus de souplesse peut être
0
chldc Messages postés 5 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 janvier 2010
29 nov. 2008 à 19:58
Merci Alain pour ta réponse !
Un array est surement une bonne idée, j'ai vu aussi qu'il existe des "tables temporaires",
est ce que ça ne serait pas fait pour ça ?
Là je m'entraine avec de petites tables mais ensuite, j'aurai des contenus importants à manipuler, (de l'ordre de 10 000 enregistrements par table).
J'essaye juste d'anticiper pour ne pas être coincé plus tard par les temps de réponse du serveur.
L'autre partie de ma question c'est de savoir le type de contenu est retourné par le serveur, pour mieux comprendre comment exploiter ces réponses, j'imagine que c'est une sorte de tableau avec les entêtes et peut-être d'autres renseignements encore.
Actuellement pour afficher une table j'envoie SHOW COLUMNS FROM `unetable... Pour afficher les entêtes, ensuite un SELECT * FROM unetable... pour afficher les enregistrements, puis encore un SHOW COLUMNS FROM `unetable pour gérer les tris des enregistrements, etc...
Ensuite il y a aussi les suppressions, les ajouts, les modifications, ce qui fait que la base est sollicitée en permanence, il doit bien exister des façons d'être plus économe en échanges client/serveur.
En en parlant je réalise qu'un array fonctionnera très bien pour gérer la structure de la table et de son affichage, nom des colonnes, critères et sens de tri, mais je cale pour aller plus loin, surtout que je voudrais inclure aussi des undoà trois ou quatre niveaux sans recourir sans arrêt au serveur, si possible !
0