explode et boucle foreach et for

ViPHP
ViPHP | 3607 Messages

28 nov. 2006, 11:49

nono requête préparée dans le genre: http://fr.php.net/manual/fr/function.pdo-prepare.php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 nov. 2006, 12:20

edit : en faite, je me posais une autre question (et oui, le topic ne peut pas s'arrêter en si bon chemin non ? :wink: ) :
Serait-il possible de faire la même chose avec un tableau à plusieurs dimensions ? Car le problème qui va se poser ensuite sera de récupérer les valeurs correctement pour effectuer la requête.
En effet on peut considérer ceci : les index 0,1,2,3 vont ensemble, puis 4,5,6,7 etc.

Donc la réservation r1 pour la date 0 à la période 1 dans la salle 2 avec le groupe 3
Puis réservation r2 pour la date 4 à la période 5 etc...

Est-ce que cela serait correcte ou suis-je à côté de la plaque ?
:roll:
Ca peut effectivement se faire, genre avec une division et un modulo, mais c'est pas forcément ce qu'il y a de mieux pour la compréhension ou la maintenance...

C'est peut être un peu plus lourd de bien séparer les choses et les nommer explicitement, mais au moins dans 6 mois quand tu reviendras sur ton code pour modifier un p'tit détail bête, tu apprécieras de ne pas avoir à passer 2 jours à essayer de comprendre comment tout cela fonctionnait ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 30 Messages

28 nov. 2006, 12:42

D'accord, je comprends.

Par contre ce qui ne va plus/pas du tout, c'est que je n'arrive pas à formuler les instructions pour dire que quand c'est 0, c'est le jour, 1 la periode etc. sans l'indiquer à la main. C'est-à-dire avec un calcul.

Par exemple, j'aimerais afficher ceci :
"Vous avez effectuer une réservation au date" (récupérer depuis l'index qui contient une date)
"Dans la salle salle" (récupérer depuis l'index qui contient une salle)
...

Ca n'a encore rien à voir avec la requête, mais ça pourrait déjà m'aider à comprendre comment la construire. Je ne vois vraiment pas comment procéder (désolé si ça fait un peu boulet :oops: ).
Parce qui va être difficle (en tous cas pour moi), c'est de remettre les bonnes informations ensemble.

ViPHP
ViPHP | 1961 Messages

28 nov. 2006, 12:56

Bonjour,
Pourquoi n'utilises tu pas des tableaux associatifs au lieu de tableaux indexés?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 30 Messages

28 nov. 2006, 14:59

re-hello ! C'est encore moi :wink:

Après avoir bien réfléchi (enfin j'espère ^^), voila au résultat que je suis arrivé :
//variable compteur
			$i = 0;
			//pour chaque éléments de $res_info
			foreach($res_info as $cle => $valeur) { 
				//texte
				echo "<b>Vous avez effectue une reservation pour le : </b><br>";
				// split des élément
 				list($date[$i], $periode[$i], $salle[$i], $groupe[$i]) = explode("|",$valeur); 
				//date
				echo "Date : ".$date[$i]."<br>";
				//periode
				echo "A la periode periode : ".$periode[$i]."<br>";
				//salle
				echo "Dans la salle : ".$salle[$i]."<br>";
				//grouoe
				echo "Avec le groupe : ".$groupe[$i]."<p>";
				//incrémentation de la variable compteur
				$i++;
			} 
Ceci me permet de récupérer chacun des mes éléments et de les rangers dans un endroit bien précis. Après, il ne me reste plus qu'à comparer les index.

Et voila comment j'affiche les infos juste pour le test :
echo "<p>";
			echo "les dates<br>";
			for ($d = 0 ; $d < count($date) ; $d++){
				echo $date[$d]."<br>";
			}
			echo "<p>";
			echo "les periodes<br>";
			for ($p = 0 ; $p < count($periode) ; $p++){
				echo $periode[$p]."<br>";
			}
			echo "<p>";
			echo "les salles<br>";
			for ($s = 0 ; $s < count($salle) ; $s++){
				echo $salle[$s]."<br>";
			}
			echo "<p>";
			echo "les groupes<br>";
			for ($g = 0 ; $g < count($groupe) ; $g++){
				echo $groupe[$g]."<br>";
			}
Je ne sais pas si c'est très politiquement correct, mais c'est ce que je voulais. Merci à tous pour l'aide, c'est vraiment très très sympa de votre part :wink: