Passer directement à un array ?

Résolu
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011 - 19 nov. 2005 à 00:25
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011 - 19 nov. 2005 à 11:25
Salut,
Je voudrais savoir s'il est possible de mettre la valeur d'un champ de base de données directement en array ?

Je développe un système de gestion de liaisons aériennes, et j'ai besoin de stocker des informations pour savoir si tel vol est effectué tel jour de la semaine (lundi=1;mardi=2;etc...).
J'ai donc un champ 'Jours' qui contient les données suivantes :
0, 1, 2, 3, 4, 5, 6
si le vol est effectué tous les jours (dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi)

0, 1, 2, 3, 8, 8, 6
si le vol est effectué tous les jours sauf le jeudi et le vendredi (le 0 étant le dimanche, 6 le samedi (comme avec la fonction date() de PHP), et le 8 signifiant qu'il n'est pas effectué ce jours-là.

Donc pour afficher ça sur une page web, j'avais pensé récupérer ce champ dans une requête, donc :
$select_vols = "SELECT * FROM horaires WHERE statut='1' ORDER BY id ASC";
$resultat = mysql_query($select_vols) or die('Erreur SQL...
'.select_vols.'
'.mysql_error());

et mettre la valeur directement dans un array, comme ceci :

while($vol = mysql_fetch_array($resultat) {
$arr_jours = array($vol[12]);
}

pour enfin, faire le test de chaque numéro un peu comme ceci (dans la boucle While) :
if($arr_jours[0]=='0') {
echo "dimanche";
} elseif($arr_jours[0]=='8') {
echo "";
}

Mais ça ne marche pas... Y'a-t-il un truc pour récupérer un array ? ou ai-je loupé quelque chose ? ou suis-je obligé de passer avec la fonction substr() ?

Merci d'avance !
@bientôt, Mathieu

5 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
19 nov. 2005 à 10:47
Salut!

Et la fonction explode:

$array = explode( ',', $vol[12] );



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
19 nov. 2005 à 00:48
Salut!

Si tu récupère tes 7 champs, tu peux faire:

while($vol = mysql_fetch_array($resultat)
$arr_jours = $vol;


Et ensuite:

$arr_jours[0]

$arr_jours[1]

$arr_jours[2]

...



C'est ca que tu veux?



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011
19 nov. 2005 à 00:58
Non en fait ce que je veux dire, c'est que dans un array, les données sont formatées comme ça :
(1, 2, 3, 4, 5, 6, 7)

Dans ma base de données, elles sont formatées de la même manière (dans 1 seul champ), mais pourtant je ne peux pas utiliser ce champ en tant qu'array... Est-ce que c'est normal ? Ou est-ce que y'a un truc à faire ?

Parce que si je récupère mon champ par $vol[12]; je vais récupérer un truc du genre "0, 1, 2, 3, 4, 5, 6" or je ne peux pas afficher ça directement sur la page...

Je reprécise que chaque chiffre signifie que le vol est effectué ce jour-là. Le 0 étant le dimanche (date("0");) et le 6 étant le samedi (date("6");). S'il y a un 8, cela signifie que le vol n'est pas effectué ce jour-là...

Donc si dans la base de données, j'ai "0, 1, 2, 3, 4, 5, 8" cela signifie que le vol est effectué le dimanche, le lundi, le mardi, le mercredi, le jeudi et le vendredi (pas le samedi).

Ce que j'aurais voulu arriver à faire au final c'est :
if($arr_jour[0]=='0') {
echo "dimanche";
} elseif($arr_jour[0]=='8') {
echo "";
}

if($arr_jour[1]=='1') {
echo "lundi";
}elseif($arr_jour[1]=='8') {
echo "";
}

etc... jusqu'à $arr_jour[6] pour pouvoir écrire au final quelque chose du genre "dimanche, lundi, mardi...". Ca aurait été simple à faire avec un array.

@ bientôt, Mathieu
0
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011
19 nov. 2005 à 01:00
arf j'ai oublié la dernière phrase...

Donc le but est de convertir ce que je reçois de la DB ($vol[12]) en array...

@ bientôt, Mathieu
0

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

Posez votre question
Netlink Messages postés 139 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 12 juillet 2011
19 nov. 2005 à 11:25
Ah yess ;)

Ca marche !!

J'y avais pas pensé. Merci beaucoup [mailto:R@f R@f] !

@ bientôt, Mathieu
0
Rejoignez-nous