Table temporaire

cs_nono52 Messages postés 5 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 1 septembre 2008 - 28 août 2008 à 16:07
cs_Dj Nam Messages postés 26 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 1 avril 2012 - 3 sept. 2008 à 10:18
Bonjour,

Je me permet de vous solliciter car j'ai un PB d'insertion de date dans une table Mysql.
J'ai un formulaire qui me permet de valider des modules par niveaux, ces niveaux sont choisis via la sélection d'une couleur, cette couleur détermine le niveau.
Pour la validation j'appelle un fichier php contenant la requète pour l'inscription dans la table.

Mon PB vient du fait que la date du jour est insérée lors de la validation pour chaque module et non comme je le voudrai c'est à dire:
je sélectionne le module, je lui affiche une couleur prédéfinie(niveau) dans un select et en validant mon formulaire j'insère la date du jour et le niveau qui correspond.

En réalité tous les modules recoivent la date du jour et non ceux que j'ai sélectionné dans mon formulaire.

On m'a conseillé d'utiliser une table temporaire pour faire une comparaison entre ma table d'origine et les modifs du formulaire pour pouvoir inscrire dans la table d'origine uniquement les modifications que j'ai apporté. Malheureusement j'ai des lacunes dans ce domaine et j'airai besoin de votre aide.

Mon formulaire:
<?php
  session_start();
  require_once './../include/mysql.inc.php';
  require_once './../include/dbdata.inc.php';
  $db1 = new Mysql($dbdata['host'],$dbdata['db'],$dbdata['user'],$dbdata['pass']);
  require_once './../include/fonctions.inc.php';
?>
<script language="JavaScript">
function fermer() {
opener=self;
self.close();
}
</script>
<form action="../index.php?page=validation_vol" onsubmit="fermer()" method="post" enctype='multipart/form-data'>
" />
" />

Heure de vol : <select name="heure_heure"><option value="00">Heure</option>
<?php
for ($i=0;$i<=24;$i++) {
    if (strlen($i) == 1) { $i='0'.$i; }
    echo '<option value="'.$i.'">'.$i.'</option>';
}
?></select> <select name="heure_min">
<option value="00">Min</option>
<?php
for ($i=0;$i<=60;$i++) {
    if (strlen($i) == 1) { $i='0'.$i; }
    echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>

<?php
    $db1->q("SELECT membre_avion FROM membre WHERE membre_id='".$_GET['eleve']."'");
    $donnees = $db1->f();        $result mysql_query('SELECT id, type, module, intitule FROM cursus WHERE type_avion "'.$donnees['membre_avion'].'"') or die(__LINE__.mysql_error().$sql);
?>
" />
Cursus : <?php echo $donnees['membre_avion']; ?>

   

            ----

            type |
            module |
            intitule |
            etat |
       
        <?php
            while ($var = mysql_fetch_assoc($result)) {
        ?>
        ----

            <?php echo $var['type']; ?>,    
            <?php echo $var['module']; ?>,
            <?php echo $var['intitule']; ?>,
                       
           
            <?php
            $a = mysql_query('SELECT niveau FROM participe WHERE membre_id='.$_GET['eleve'].' AND cursus_id='.$var['id'].' ');
            $b = mysql_fetch_assoc($a);
            if ($b['niveau'] == 1) {
                echo '';
            } elseif ($b['niveau'] == 2) {
                echo '';
            } elseif ($b['niveau'] == 3) {
                echo '';
            } else {
                echo '';
            }
            ?>
           
            <select name="<?php echo $var['id'] ?>">
            <?php           
            $db1->q('SELECT niveau FROM participe,cursus WHERE membre_id='.$_GET['eleve'].' AND cursus_id='.$var['id'].' AND cursus_id=cursus.id');   
               
            if ($b['niveau'] == 1) {
                echo '<option value="1" selected="selected">Orange</option>';
            } elseif ($b['niveau'] == 2) {
                echo '<option value="2" selected="selected">Vert</option>';
            } elseif ($b['niveau'] == 3) {
                echo '<option value="3" selected="selected">Bleu</option>';
            } else {
                echo '<option value="0" selected="selected">Rouge</option>';
            }
                echo '<option value="0">Rouge</option>
                <option value="1">Orange</option>
                <option value="2">Vert</option>
                <option value="3">Bleu</option>
                ';
           
            ?>
            </select>
           
           
           
           ,
       
        <?php
            }
        ?>
   

</form>

Ma réquète pour mise à jour de la table:
<?php
if (isset($_POST['ajouter']) && $_POST['ajouter'] == 'Ajouter') {
    $result mysql_query('SELECT id FROM cursus WHERE type_avion "'.$_POST['avion'].'"');
    while ($var = mysql_fetch_assoc($result)) {
        if (isset($_POST[$var['id']])) {
            $db1->q("UPDATE participe SET niveau=".$_POST[$var['id']].", date_part='".date('Y-m-d',time())."' WHERE cursus_id=".$var['id']." AND membre_id=".$_POST['eleve']."");
            }
    }@mysql_free_result($result);
   
    $db1->q("UPDATE vol SET Hvol='".$_POST["heure_heure"].":".$_POST["heure_min"].":00' WHERE vol_code=".$_POST["vol"]." ");

}
?>
Merci pour votre aide

2 réponses

cs_nono52 Messages postés 5 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 1 septembre 2008
1 sept. 2008 à 19:46
Personne n'a une idée de solution ?

Mon soucis dans le code se trouve là:

$db1->q("UPDATE participe SET niveau=".$_POST[$var['id']].", date_part='".date('Y-m-d',time())."' WHERE cursus_id=".$var['id']." AND membre_id=".$_POST['eleve']."");

Quel serait le moyen d'éviter que tous les modules recoivent la date du jour et non ceux que j'ai sélectionné dans mon formulaire.
Est ce que je dois rajouter une requète mais dans ce cas laquelle ?
0
cs_Dj Nam Messages postés 26 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 1 avril 2012
3 sept. 2008 à 10:18
Bojour,
lorsque je veux insérer une date dans une requête SQL je la stoque dans une variable avant car j'ai toujours eu le même problème, alors voici une solution :
$jour = date('Y-m-d',time());
$db1->q("UPDATE participe SET niveau=".$_POST[$var['id']].", date_part='".$jour."' WHERE cursus_id=".$var['id']." AND membre_id=".$_POST['eleve']."");

Maxime
0
Rejoignez-nous