IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème boucle php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut problème boucle php
    Bonjour,

    j'ai un problème concernant ma boucle dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    			<tr>
                	<td><label>Heure Debut : <input type='text' size = '2' name='heure' value='$heure_debut'/></label></td>
                    <td><label>Heure Fin : <input type='text' size = '2' name='heure' value='$heure_fin'/></label></td>";
     
    				while ($heure = $heure_debut<$heure_fin)
    				{
    					$heure=$heure+1;
    				}
     
    			echo "</tr>
    Ce que je veux c'est récupérer dans la variable $heure, les heures d'intervalle entre $heure_debut et $heure_fin rentré dans mon formulaire. Si quelqu'un voit ou vient l'erreur? merci à vous!

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    je m'explique d'avantage...

    si je saisi par exemple :

    heure début : 14h
    heure fin : 17h

    Il faut que je retienne en heure : 14-15-16

    donc dans ma boucle je viens d'essayer de rajouter : next($heure);

    mais cela ne fonctionne toujours pas

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut
    Pour ma part, je commencerais par affecter mon heure de début à la variable $heure. Ensuite, je ferais ma boucle en faisant une simple comparaison (sans l'affectation).

    Par contre dans le code que tu as fournis, à aucun moment tu ne récupère les différents valeurs que va prendre ta variable $heure. Tu ne fait que des affectations.

    Voila ce que j'écrirais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo "<tr>";
        echo "<td><label>Heure Debut : <input type='text' size = '2' name='heure' value='$heure_debut'/></label></td>";
        echo "<td><label>Heure Fin : <input type='text' size = '2' name='heure' value='$heure_fin'/></label></td>";
     
        $heure = $heure_debut;
        while ($heure < $heure_fin){
            $liste_heure[] = $heure;
            $heure++;
        }
     
    echo "</tr>";

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    merci de ta réponse bugger24, je viens d'essayer ton code mais sa m'affecte toujours la valeur de la variable $heure_fin.

    je n'ai pas fournit le code complet de mon formulaire, je le poste maintenant pour y voir plus claire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <?php
    include ('traitements.php');
    connectDB();
     
    	// Variables vides pour les valeurs par défaut des champs
    	$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
     
    	if (isset($_POST['envoi']))
    	{
    		//création de la requète d'insertion
    		$date = htmlentities($_POST['date']); //htmlentities — Convertit tous les caractères éligibles en entités HTML //addslashes — Ajoute des antislashs dans une chaîne;
    		$heure = htmlentities($_POST['heure']);
    		$id_etat = $_POST['id_etat'];
     
    		$typeDate = "#^[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}$#";
     
    		if (preg_match($typeDate, $date)) //preg_match — Expression rationnelle standard
    		{
    			$tabDateDeb = explode("/", $date); //explode — Coupe une chaîne en segments
    			$timestampDebut = mktime(0, 0, 0, $tabDateDeb[1], $tabDateDeb[0], $tabDateDeb[2]); //mktime —  Retourne le timestamp UNIX d'une date 
    			//Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié. 
     
    			$identifiantCommun = time();
    			$timeDuJour = $timestampDebut;
     
    			if($nbreJours <= 0) $nbreJours = 1;
     
    			if(!empty($date) && !empty($heure) && !empty($id_etat))
    				{
    				for($i=0 ; $i<$nbreJours ; $i++) 
    					{
    					$req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    					mysql_query($req) or die(mysql_error());
     
    					$timeDuJour += 86400; // On augmente le timestamp d'un jour
    					}
     
    				mysql_close();
    				$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
    				echo '<ul><li>Evénement enregistré !</li></ul>';
    				}
     
    		}
    	}
     
    	echo "<h1>Ajouter un événement</h1>
        
        <form method='post' action='#'>
        	<table id='tabAjoutEvent'>
            	<tr>
                	<td>Date : <input type='text' size = '10' name='date' value='$date'/></td>
                </tr>
    			
    			<tr>
                	<td>Heure Debut : <input type='text' size = '2' name='heure_debut' value='$heure_debut'/></td>
                    <td>Heure Fin : <input type='text' size = '2' name='heure_fin' value='$heure_fin'/></td>";
     
    				$heure = $heure_debut;
    				while ($heure < $heure_fin)
    				{
    				$liste_heure[] = $heure;
    				$heure++;
    				}
     
     
    			echo "</tr>
    
    			<td>Description de la piste : </td>
    			<td><select name='id_etat'>";
     
                $sql = ('SELECT * FROM etat');
                $req = mysql_query($sql) or die(mysql_error());
                while($data = mysql_fetch_assoc($req))
                {
    			$optionT = $data['id_etat'].' | '.$data['description_etat'];// concaténation des deux éléments de la table état
    			echo '<option value='.$optionT.'>' .$optionT. '</option>';
                }
                mysql_close();
     
    			echo "</select></td>
    			</tr>
    			
    			<tr>
    				<td><input name='reset' type='reset' value='Effacer'/></td>
                </tr>
    			
    			<tr>
    				<td colspan='2'><input type='submit' name='envoi' value='Envoyer'/></td>
    			</tr>
    			
    			
    		</table>
        </form>
    	
     	<br><a href='index.php'>Revenir à l'accueil</a>";
     
     
    	echo "<h2>Les évènements dans la base de données</h2>";
    	echo affichageEvenements();
    ?>
    mon affectation se fait lors de cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    la table évènements avec le champ "heure" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE evenements(
    id_evenement INT NOT NULL AUTO_INCREMENT,
    jour_evenement VARCHAR(2) NOT NULL,
    mois_evenement VARCHAR(2) NOT NULL,
    annee_evenement VARCHAR(4) NOT NULL,
    heure VARCHAR(2),
    id_etat INT,
    constraint Pk_evenements Primary key (id_evenement),
    constraint Fk_evenements Foreign key (id_etat) References etat (id_etat))TYPE=InnoDB;

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Par défaut
    Normal tu utilise $heure, alors que al liste des heures est stocké dans le tableau $liste_heure

    Si tu veux une chaine qui contienne les heures il faut remplacer $liste_heure[] dans ta boucle par $heure = $heure.$heure+1
    Ou alors j'ai pas bien capté un truc


  6. #6
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    dans ma base de données je souhaite voir apparaitre :

    Num Evenement - Date Evenement - Heure - Id_Etat
    1 - 09/03/2010 - 10 - 1
    2 - 09/03/2010 - 11 - 1
    3 - 09/03/2010 - 12 - 1
    4 - 09/03/2010 - 13 - 1

    après avoir saisi dans mon formulaire
    Date : 09/03/2010
    Heure debut : 10
    Heure fin : 14
    Id Etat :1

    plus compliqué que ça je pense

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Spip] Problème variable PHP dans boucle
    Par Nicolas.S dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 18/06/2009, 10h31
  2. Problème de boucles Php/mysql
    Par Atwight dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/08/2006, 15h44
  3. Réponses: 4
    Dernier message: 17/01/2006, 19h17
  4. Problème : Script PHP IE NOK Firefox OK
    Par Saiyan dans le forum Langage
    Réponses: 40
    Dernier message: 15/11/2005, 23h59
  5. [Performance] LEFT JOIN vs SELECT dans une boucle (PHP)
    Par frochard dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/10/2005, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo