Récupération de valeurs SQL avec PHP

Résolu/Fermé
holycasto3101 Messages postés 5 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 11 mars 2014 - 4 août 2012 à 08:32
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 - 4 août 2012 à 21:12
Bonjour,

Ma question est la suivante. J'ai une base de donnée SQL dans laquelle j'ai plusieurs colonne. J'aimerais récupérer plusieurs valeurs d'une seule colonne et retourner ses valeurs dans des variables différentes. Voici le bout de code qui nous intéresse :

$query2 = "SELECT 'w1name' FROM 'datas' WHERE 'Company' = '".$Company."'";
$result2 = mysql_query($query2) or die ("Error in query: $query. " . mysql_error());
while($data2 = (mysql_fetch_object($result2))){
$waitressnbr1=$data2->w1name;
}

En résumé, il y a 5 valeurs sous la colonne w1name que j'aimerais pouvoir affecter à des variables $waitressnbr1 $waitressnbr2 etc...

J'ai remarqué qu'en faisant un echo $data2->w1name; j'obtenais toutes les valeurs trouvés mais comment est-ce que je peux récupérer la première, la deuxième etc. de façon séparé l'une d'elle ?

Merci !

A voir également:

4 réponses

Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 145
4 août 2012 à 09:17
Salut,

Essaie avec mysql_fetch_row plutôt que mysql_fetch_object

Mais il vaudrait mieux te pencher sur PDO, ou mysqli, car tout ce qui est mysql_* devient obsolète !
0
holycasto3101 Messages postés 5 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 11 mars 2014
4 août 2012 à 16:59
Salut,

Merci pour ta réponse rapide... j'ai essayer avec mysql_fetch_row mais ça me dit ''Array'' comme valeur lorsque je fais un echo. J'avais penser à une solution ''alternative'' du genre : dans la table members créer 5 colonnes avec 'w1name' 'w2name' 'w3name' et ainsi de suite puis lorsque je fais ma validation faire quelque chose du genre :

//Récupération de nom de la compagne dans la table 'members'

$query1 = "SELECT 'Company' FROM 'members' WHERE 'username' = '".$user."'";
$result1 = mysql_query($query1) or die ("Error in query: $query. " . mysql_error());
$data1 = (mysql_fetch_array($result1));
$Company = $data1['Company'];
echo $Company; //fonctionne

//Récupération du nom 'w1name' dans la table 'members' associé à la Company

$query2 = "SELECT 'w1name' FROM 'members' WHERE 'Company' = '".$Company."'";
$result2 = mysql_query($query2) or die ("Error in query: $query. " . mysql_error());
$data2 = (mysql_fetch_array($result2));
$waitressnbr1 = $data2['w1name'];
echo $waitressnbr1; //fonctionne

//Récupérations des toutes les données ayant la 'Company' et la 'w1name' identique au variable $Company et $waitressnbr1 dans la table datas

$query = "SELECT * FROM 'datas' WHERE 'Company' = '".$Company."' AND 'w1name' = '".$waitressnbr1."'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
$data = (mysql_fetch_array($result));
$w1name = $data['w1name'];
echo $w1name; //ne fonctionne pas


Pour l'instant tout fonctionne pour la 'Company' et le 'w1name' dans la table members mais dès que je change pour la table 'datas' je n'ai plus de données qui s'affiche depuis mon echo. Est-ce que ça pourrait tenir du fait que c'est deux tables différentes ?

Et merci pour ton conseil pour PDO ou mysqli je vais y voir !
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 145
4 août 2012 à 17:14
En fait, c'est normal que mysql_fetch_row te retourne un tableau.
Tu peux faire ta requête, $r_query = 'SELECT ...';
$r_res = mysql_query($r_query);
while($a_data = mysql_fetch_row($r_res))
{
echo $a_data['nom_champ'];
}

Ça te permet de parcourir chaque ligne des résultats retournés par ta requête.

En ce qui concerne ton souci avec la requête sur la table datas, est-ce que tu as bien un champ "w1name" ? Essaie de simuler cette requête depuis phpmyadmin pour voir le résultat donné !
0
holycasto3101 Messages postés 5 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 11 mars 2014
4 août 2012 à 17:28
Bon je viens de trouver mon erreur... dans ma table 'members' javais créer w1name sous la valeur 'DefautName1' et dans la pour la compagnie 'abcd' tandis que dans la table 'datas' la valeur de w1name pour la compagnie 'abcd' était 'DefaultName1' ...

et effectivement je crois que faire un while serait beaucoup plus efficace je vais essayer ça et je vous met le code lorsque c'est fait pour les curieux ; )

Un gros merci pour votre aide !
0
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 145
4 août 2012 à 21:12
Au plaisir !
0
holycasto3101 Messages postés 5 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 11 mars 2014
4 août 2012 à 17:36
$query2 = "SELECT 'w1name' FROM 'members' WHERE 'Company' = '".$Company."'";
$result2 = mysql_query($query2) or die ("Error in query: $query. " . mysql_error());
$data2 = (mysql_fetch_array($result2));
$w1 = $data2['w1name'];
$query = "SELECT * FROM 'datas' WHERE 'Company' = '".$Company."' AND 'w1name' = '".$w1."'";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
while($data = mysql_fetch_array($result)){
$w1name = $w1;
$w1BBMon1 = $data['w1BBMon1'];
$w1SalesMon1 = $data['w1SalesMon1'];
$w1HoursMon1 = $data['w1HoursMon1'];
etc...
}


Merci !
0