Page 1 sur 1

Demander un echo si le if d'un foreach ne trouve rien

Posté : 05 janv. 2023, 18:06
par Zedix
Bonjour,
désolé si mon titre ne semble pas vouloir dire grand chose, honnêtement je ne sais pas comment le décrire mieux (et ça explique aussi pourquoi je ne sais pas du tout quoi taper pour chercher une réponse).

Voici la partie du code qui me pose problème:
if (!empty($_POST["departureTime"])) {

	echo "Destinations au départ de " . $_POST['departure'] . " à partir de " . $_POST["departureTime"] . " : <hr>";

	foreach ($travels as $travel) {

		if ( ($_POST['departure']==$travel["departure"]) AND ($_POST['departureTime'] < $travel["departureTime"])) {
		echo $travel["arrival"] . " : départ à " . $travel["departureTime"] . " et arrivé à " . $travel["arrivalTime"] . " avec " . $travel["driver"] . " comme conducteur. <br>";
		} 
	} 
} 
Le code fonctionne très bien, en lien avec un tableau avec des voyages (départs, destination, heure de départ..).
Ici, je dis en gros: si la personne a donné une heure sur le formulaire, alors on sonde le tableau (foreach) et pour tous les trajets correspondants (if) on les affiches.

Tout ça fonctionne sans problème.

Le soucis est que j'aimerai pouvoir ajouter un simple
echo "Aucun résultat trouvé";
si jamais le if dans foreach ne trouve aucun résultat. Sauf que je ne vois absolument pas où le placer dedans, ni comment faire, parce que si j'utilise else après le if dans foreach, ça m'indique "Aucun résultat trouvé" autant de fois qu'il y a de trajets qui ne correspondent pas à la requête, or je ne le veux qu'une fois.

J'imagine que c'est tout con comme problème, mais j'ai beau bidouiller par-ci par-là, je ne trouve rien, et vu que je ne vois pas comment décrire mon problème simplement, mes recherches sur internet ne m'aident pas plus non plus :(

Re: Demander un echo si le if d'un foreach ne trouve rien

Posté : 05 janv. 2023, 18:10
par two3d
Tu crée une variable que tu incrémente si tu trouve un résultat, si ta variable > 0 = "des résultats sont trouvés".

Re: Demander un echo si le if d'un foreach ne trouve rien

Posté : 05 janv. 2023, 18:17
par Zedix
Tu crée une variable que tu incrémente si tu trouve un résultat, si ta variable > 0 = "des résultats sont trouvés".
Merci de la réponse rapide!
Bon j'avoue que je suis pas trop sûr de savoir comment faire vu le contexte là (jamais fais de variable incrémentée), mais je vais me renseigner du coup, en tout cas merci de la piste! :)

Re: Demander un echo si le if d'un foreach ne trouve rien

Posté : 05 janv. 2023, 18:19
par two3d
$i = 0;
foreach ($some as $somekey) {
$i++;
}

Re: Demander un echo si le if d'un foreach ne trouve rien

Posté : 05 janv. 2023, 18:21
par Zedix
$i = 0;
foreach ($some as $somekey) {
$i++;
}
Ah mais oui, c'est vrai que ça a l'air tout con vu comme ça, avec l'incrémentation c'est déjà bien mieux!
Je suis encore qu'une brelle en PHP, donc merci beaucoup pour ton aide! :)

Re: [RESOLU] Demander un echo si le if d'un foreach ne trouve rien

Posté : 07 janv. 2023, 13:35
par elevedavid
tu vas t'amuser sur la suite, il y a des erreurs dans le cours et la partie sur le cryptage des mot de passe est has been !!

moi je bloque sur le devoir N°1 php intermédiaire