Boucle dans titre de colonne mysql

Petit nouveau ! | 2 Messages

25 mai 2013, 16:44

Bonjour! :)

J'ai déjà fait des boucles du genre:

Code : Tout sélectionner

$i = 1; while ($i <= $nb_equipes) { $nomdequipe = $_POST['equipe'][$i]; echo $nomdequipe; $i++; }
Donc avec un $_POST ca fonctionnait bien. J'essaie de faire la même chose avec un titre de colonne Mysql mais sans succès.
Mes 15 titres de colonnes sont: date_sem1 , date_sem2, date_sem3, etc...

Code : Tout sélectionner

$i = 1; while ($i <= 15) { $sql = "SELECT * FROM masc_dates"; $resultat = mysql_query ($sql); $colonne = mysql_fetch_array($resultat); $date_sem[$i] = $colonne['date_sem'][$i]; echo $date_sem[$i]; $i++; }
Mon code ne me retourne aucune erreur et ne retourne absolument rien...
Que faire?

Petit nouveau ! | 2 Messages

25 mai 2013, 17:04

Pour que ça fonctionne, je suis obligé de faire cette affreuse démarche:

Code : Tout sélectionner

$sql = "SELECT * FROM masc_dates"; $resultat = mysql_query ($sql); $colonne = mysql_fetch_array($resultat); if($i =="1") {$date_sem = $colonne['date_sem1']; } elseif($i =="2") {$date_sem = $colonne['date_sem2']; } elseif($i =="3") {$date_sem = $colonne['date_sem3']; } elseif($i =="4") {$date_sem = $colonne['date_sem4']; } elseif($i =="5") {$date_sem = $colonne['date_sem5']; } elseif($i =="6") {$date_sem = $colonne['date_sem6']; } elseif($i =="7") {$date_sem = $colonne['date_sem7']; } elseif($i =="8") {$date_sem = $colonne['date_sem8']; } elseif($i =="9") {$date_sem = $colonne['date_sem9']; } elseif($i =="10") {$date_sem = $colonne['date_sem10']; } elseif($i =="11") {$date_sem = $colonne['date_sem11']; } elseif($i =="12") {$date_sem = $colonne['date_sem12']; } elseif($i =="13") {$date_sem = $colonne['date_sem13']; } elseif($i =="14") {$date_sem = $colonne['date_sem14']; } elseif($i =="15") {$date_sem = $colonne['date_sem15']; }

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

25 mai 2013, 17:34

salut,

avec un boule for et la concaténation tu a ce que tu veux en quelques lignes !
<?php
$sql = "SELECT * FROM masc_dates";
$resultat = mysql_query($sql);
$nbligne = 0;
while ($colonne = mysql_fetch_array($resultat)) {
    for ($i = 1; $i < 16; $i++) {
        $date_sem[$nbligne][$i] = $colonne['date_sem' . $i];
    }
    $nbligne++;
}
$nbligne n'est pas obligatoire tu peux mettre la clef primaire de la table pour garder une références au données d'origine.

Ton code montre une méconnaissance de la modélisation des bases de données.
Dans ton cas tu devrais avoir une table en plus qui contient les dates. Cela te permettrais un gain en souplesse et au final en place vue que si tu ne te sert pas de toutes les dates les champs existe et sont inutile (même si c'est minime).

je t'invite à cherche un, ou plusieurs, tuto sur la méthode merise et plus précisément le modèle entité - association ou sur uml.

@+
Il en faut peu pour être heureux ......

Hofner44
Invité n'ayant pas de compte PHPfrance

25 mai 2013, 20:18

J'ai toujours une variable vide...

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

25 mai 2013, 23:11

Laquelle ?

On ne fait pas dans la voyance :mrgreen:

As tu message d'erreur ? (Est ce que ton error reporting est bien a E_ALL ?).

@+
Il en faut peu pour être heureux ......