Page 1 sur 1

méthodes de sélection de valeurs disperssées dans une table

Posté : 04 août 2010, 17:52
par cochio
Bonjour,
admettons la table suivante, nommée contact :

[id] [nom][prenom][age]
[1] [A1] [A2] [A3]
[2] [B1] [B2] [B3]
[3] [C1] [C2] [C3]

Comment faire pour récupérer C2, C3 et B2 par exemple, pour les afficher un par un à divers endroits de ma page ?
Je précise que j'utilise la méthode mysql

Pour moi, le plus simple pour l'instant est de faire :

Code : Tout sélectionner

$sql1 = " SELECT prenom, age, FROM contact WHERE nom='C1' "; // j'utilise nom='C1' car plus explicite que id=3 $sql2 = " SELECT prenom FROM contact WHERE nom='B1' ";
puis j'utilise mysql_fetch_array pour chaque résultat...

N'y a t'il pas moyen de récupérer directement via une requête les lignes id=2 et id=3 dans un tableau à plusieurs dimensions ?

J'ai un peu de mal dans la jungle d'infos (sites officiels, forums, livres). J'ai fait pas mal de test sans succès.
Faut-il mieux que je parte sur la méthode mysqli ? J'ai cru comprendre qu'il y avait plus de fonctions? (La syntaxe orienté objet, je mets de côté car ça fait trop de nouveauté pour moi.) Si ma question vous ennuie parce-qu'elle a été posé 3462 fois, pouvez-vous me donner juste des pistes de recherche svp ?
Merci. :)

Re: méthodes de sélection de valeurs disperssées dans une table

Posté : 05 août 2010, 00:27
par stealth35
hello, t'as 2 solution sois tu creer un array qui genre :

1er solution
$array = array();
while($data = mysql_fetch_assoc($req))
{
    $array[] = $data;
}
la tu pourras parcourir ton $array comme tu veux.

2eme solution (en 2 parties)
- tu peux creer directement c'est array grace a fetchAll qui est disponible avec PDO (mais solution object)
- tu peux faire aussi un fetchall avec mysqli mais uniquement si le client de mysqli est myslnd


on peux aussi faire un UNION mais ca n'aurai pas trop de sens

Re: méthodes de sélection de valeurs disperssées dans une table

Posté : 05 août 2010, 17:57
par cochio
Merci, j'ai suivi ces pistes et fait plusieurs test, sans obtenir exactement ce que je voulais : une notation explicite.
J'avoue avoir failli denenir chauve en fin de journée entre les clefs, les valeurs, les boucles pour insérer des valeurs dans des clefs...
Je fais donc à la place plusieurs requêtes.

Voilà quand même la base des recherches sur lesquelles je suis parti :

Code : Tout sélectionner

<?php $db = mysqli_connect('serveur', 'user', 'passw', 'base'); // connection if (!$db) // gestion erreur de connection { die('Erreur de connexion (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } $sqlContact = "SELECT prenom, age FROM contact" or die ('Problème relatif à la requete ou à la table.'); // énoncé de la requête. $dbContact = mysqli_query($db, $sqlContact); // activation requête $contactTab = mysqli_fetch_all($dbContact); // récupère les colonnes prenom et age sous forme de tableau echo $contactTab[1][0]; //affiche B2 echo $contactTab[2][0]; //affiche C2 echo $contactTab[2][1]; //affiche C3 /* j'aurrais voulu plutôt ceci : echo $contactTab[B1][prenom]; echo $contactTab[C1][prenom]; echo $contactTab[C1][age]; */ mysqli_close($db); ?>

Re: méthodes de sélection de valeurs disperssées dans une table

Posté : 05 août 2010, 18:13
par stealth35
avec le 2eme paramètre de fetch_all MYSQLI_ASSOC :wink: