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

Eléphant du PHP | 51 Messages

08 août 2017, 11:12

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 } } ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 août 2017, 12:02

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;
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

09 août 2017, 21:23

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>'; } } ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 août 2017, 21:52

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']
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

09 août 2017, 22:11

Il me pose une erreur au niveau du $texte = $texte->fetch(); je ne comprend pas

Eléphant du PHP | 51 Messages

09 août 2017, 22:14

et si je vire les => 0, dans l'array ca ne cause plus d'erreiur. merci de ton aide ;)

Mammouth du PHP | 2703 Messages

09 août 2017, 22:20

foreach ($annee_text as $value) {
echo 'SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour;

qu'est-ce que cela affiche ?

Eléphant du PHP | 51 Messages

09 août 2017, 22:34

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