Faire un aray a partir de mysql

Fermé
johnson - 22 janv. 2008 à 17:42
 Alain42 - 23 janv. 2008 à 16:13
Bonjour,

j'aimerais former un tableau apres avoir fait une requete mysql :

mysql_query("SELECT nom, prenom FROM identity");

je voudrais pouvoir dire ensuite tableau (7 ; 2) et que ca me donne le prenom de la 7e personne ou bien tableau (3,1) et que ca me donne le nom de la 3e personnne

est-ce possibile ?

merci d'avance à vous

11 réponses

DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
22 janv. 2008 à 17:59
salut,

essai ca :

<?php
$query = "SELECT nom, prenom FROM identity";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $row['nom']. " - ". $row['age'];
?>

ca te conviens ?

0
salut et merci,

ton code ne permet d'afficher que le nom et prenom de la 1ere personne de la liste

mais si je voulais par exemple juste ceux de la 3e personne de la liste , comment dois je faire ?
0
Bonsoir,

je pense qu'il veut plutôt stocker les résultats de sa requette dans un array qu'il viendra lire a sa guise après.

Essayes:
<?php
$query = "SELECT nom, prenom FROM identity";
$result = mysql_query($query);
//on va charger les reponses dans un array à deux dimensions
$tableauNP=array();
$i=0;
while($row = mysql_fetch_array($result)){
	$tableauNP[$i]['nom']=$row['nom'];
	$tableauNP[$i]['prenom']=$row['prenom'];
	$i++;
}
//si tu veux le nom du 5 ième:
echo "Nom du cinqieme: ".$tableauNP[4]['nom']; //array commence à 0
//si tu veux le prenom du 1ier:
echo "Prenom du premier: ".$tableauNP[0]['prenom'];
?>


@lain
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
23 janv. 2008 à 10:49
Bonjour,

Pourquoi se compliquer la vie ?
Au lieu de
while($row = mysql_fetch_array($result)){
	$tableauNP[$i]['nom']=$row['nom'];
	$tableauNP[$i]['prenom']=$row['prenom'];
	$i++;
}
ne serait-il pas plus simple de mettre
while($row = mysql_fetch_array($result)){
	$tableauNP[$i] = $row;
	$i++;
}
Comme ça on ne se pose pas le problème du nombre de colonnes...

Ou alors j'ai raté un truc ?
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
22 janv. 2008 à 18:19
dsl de te le dire mais cette méthode devient un peu lourde lorsque la table est grande.

voila ce que tu cherches:

<?php
$query = "SELECT nom, prenom FROM identity";
$result = mysql_query($query);
$arr = mysql_fetch_rowsarr($result);
$nom = $arr[3]['nom'];
$prenom = $arr[3]['prenom'];
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci a vous,
toutefois il me semble que $array[3]['nom'] ne fonctionne pas ds ton cas DjSKeud .. ?
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
22 janv. 2008 à 22:41
LOl, ba écoutes pourtant c'est du code provenant d'un site assez sérieux, mais alors dans ce cas utilises la méthode de Alian42 qui est tout aussi valide. Si effectivement tu veux gagner du temps et de la rentabilité à l'éxéction de ton code en ne récupérent qu'une seul ligne lors de ta requete (plus de while) tu dois connaitre l'ID de ta ligne d'utilisauteur (par exple "SELECT nom, prenom FROM Identity where ID = 3"
... et la tu recuperera bien qu'une seul ligne, avec le prénom et le nom de la personne d'ID 3.

Voili voilou
0
Bonjour,

Tu veux faire quoi exactement ?

Utiliser plusieurs fois dans ton script l'affichage à partir de l'array obtenu, ou afficher un seul nom ?

Mon script semble plus correspondre au problème posé j'aimerais former un tableau apres avoir fait une requete mysql :

Si on ne fait pas la boucle while, on a qu'un seul enregistrement, mysql_fetch_rowsarrn'est pas a ma connaissance une fonction native de PHP.
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 10:43
oui oui, j'ai bien vu ca, a vrai dire j'ai fait une recherche deux minurtes sur un forum américain, et je suis tombé sur le bout de code ci dessus.
Bien sur, tu as raison avec l'utilisation du while, c'est ce que j'utilise d'ailleur assez fréquament dans mon/mes sites .. mais je croyai que la question originel était un peu plus pointu, et qu(il souhaitai uniqement exptraire une seule ligne de sa table.
... je le repete, ta solution est VIABLE !! :) j'essayai juste d'avoir une approche de la question plus "pointu" .. mais concluante finalement :(


0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 11:01
pour Reivax962 ... euh, un array dans un array, je suis septique, non ?

0
Je suis aussi d'accord avec Reivax962. Un array dans un array c'est un array multidimension.

Sa solution est encore plus simple que la mienne.
Et valable surtout si le nombre de champs n'est pas trop important.

Codialement

@lain
0
effectivement, mysql_fetch_rowsarr n'est pas accepté chez moi, sinon je cherche a stocker les noms qui verifient certaines condditions ds un tableau (eventuellement de session) pour les reutiliser ailleurs, vos solutions me conviennent tres bien !
merci a vous
0
je cherche a stocker les noms qui verifient certaines condditions

Dans ce cas tu mets en plus une condition WHERE dans ta requette, ainsi seuls les noms concernés seront extraits.

<?php
$cond="a"
$query = "SELECT nom, prenom FROM identity WHERE nom LIKE '".$cond."%'"; // les noms commençant par $cond
$result = mysql_query($query);
//on va charger les reponses dans un array à deux dimensions
$tableauNP=array();
$i=0;
while($row = mysql_fetch_array($result)){
	$tableauNP[$i]['nom']=$row['nom'];
	$tableauNP[$i]['prenom']=$row['prenom'];
	$i++;
}
//si tu veux le nom du 5 ième:
echo "Nom du cinqieme: ".$tableauNP[4]['nom']; //array commence à 0
//si tu veux le prenom du 1ier:
echo "Prenom du premier: ".$tableauNP[0]['prenom'];
?>

0