Page 1 sur 1

Update d'une variable à l'intérieur d'un loop array

Posté : 08 août 2017, 11:12
par stevefigueras
Bonjour à tous j'ai un array qui contient le nom de plusieurs tables que je souhaites intérrroger en mysql.
Chacune de ces tables contient une même colonne

Je voudrai pouvoir renseigner une variable si cette colonne est vide ou non.
Mon problème est que cette variable doit changer à chaque loop

Etant un grand débutant en php j'étais parti sur les variables dynamique mais sur les conseils d'un admin ici même je me suis renseigné pour voir que les arrays seraient plus appropriés, cependant mon problème demeure lol :) Merci de votre aide :)

Code : Tout sélectionner

<?php $annee_text= array("an_1970", "an_1971" , "an_1972", "an_1973", "an_1974", ""); foreach ($annee_text as $value) { $texte=$bdd->query('SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour.'' ); $texte = $texte->fetch(); if(empty($texte['contenu_principal'])) { //là ca marche pas $var dont le nom doit changer à chaque loop par exemple $contenu_an_1971 = 1; puis au tout suivant $contenu_an_1972 = 1;ect ect ect } else{ $contenu_an_1971 = 2; puis au tout suivant $contenu_an_1972 = 2;ect ect ect } } ?>

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 08 août 2017, 12:02
par @rthur
En fait, il suffit que tu fasses un tableau dont les clés seraient les années :
$contenu['an_1971']=1;
Vu que l'année est un paramètre de ta boucle :
$contenu[$value]=1;

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 21:23
par stevefigueras
Bonjour j'ai encore un souci avec ce code je vous soumet donc la dernière version
Ca semble bloquer au niveau du Fetch.

En fait avec le array je voudrai pouvoir interroger la table an_1970 et renseigner une var blabla_an_1970 puis pareil pour 71 ect.

Code : Tout sélectionner

<?php $annee_text= array("an_1970"=> 0, "an_1971" => 0 , "an_1972" => 0 , ); foreach ($annee_text as $value) { $texte=$bdd->query('SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour.'' ); $texte = $texte->fetch(); if(empty($texte['contenu_principal'])) { } else{ $annee_text["value"] = 1; echo '<a class="scroll box inline-block"> <!-- Header --> <h2 class="white thin">'; echo $jour; echo $mois; echo $texte['annee']; echo ' </h2> <p class="white thin">'; echo $texte['contenu_principal']; echo ' </p></a>'; } } ?>

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 21:52
par @rthur
Pas compris.
Normalement si tu utilises des tableaux tu n'as pas besoin d'une variable $blabla_an_1970, tu as déjà stocké les infos dans ta variable $contenu['an_1970']

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 22:11
par stevefigueras
Il me pose une erreur au niveau du $texte = $texte->fetch(); je ne comprend pas

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 22:14
par stevefigueras
et si je vire les => 0, dans l'array ca ne cause plus d'erreiur. merci de ton aide ;)

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 22:20
par or 1
foreach ($annee_text as $value) {
echo 'SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour;

qu'est-ce que cela affiche ?

Re: Update d'une variable à l'intérieur d'un loop array

Posté : 09 août 2017, 22:34
par stevefigueras
Voilà le result
SELECT * FROM an_1970 WHERE `num_jour` = 8
SELECT * FROM an_1971 WHERE `num_jour` = 8
SELECT * FROM 0 WHERE `num_jour` = 8

le from 0 n'est pas normal, ca veut donc dire que le loop se fait sur les keys puis sur les value ?

Merci