Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 16h35   #1
Membre habitué
 
Avatar de berti
 
Inscription : août 2007
Messages : 214
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2007
Messages : 214
Points : 125
Points : 125
Par défaut Foreach et Checkbox

Bonjour à tous,

j'ai du oublié quelque chose dans mon code. J'ai une bdd ou je dois insérer plusieurs documents à un contact en 1 seule fois. Donc j'utilise dans checkbox pour afficher ma table document. Toutefois quand j'enregistre, ça me met bien les documents affecté au contact mais également tous les noms des valeurs (j'utilise des listes déroulantes pour les dates)

Affichage des documents:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
        <?php
			$sql = "SELECT NUM_DOC, NOM_DOC FROM DOCUMENT ORDER BY NOM_DOC;";
 
			$query = mysql_query( $sql, $connec ) ;
 
			while ($ligne=mysql_fetch_array($query))
			{
				$num = $ligne['NUM_DOC'];
				$nom = $ligne['NOM_DOC'];
				echo "<input type=checkbox name=$num value=$num>&nbsp;$nom</p>";
			}
		?>
Affichage de la date (exemple du mois)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
	<select name="mois" id="mois">
		<?php 
		    $i = 1;
			$t=getdate();
			$mois="$t[mon]"; 
			echo "<option value=$mois>$mois</option>";
			while ($i <= 12)
			{
				echo "<option value=$i>$i</option>";
				$i = $i + 1 ;
			}
		?> 
          </select>
Code pour l'insertion
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
	if(isset($_POST['insert']))
	{
		$jour = $_POST['jour'];
		$mois = $_POST['mois'];
		$annee = $_POST['annee'];
		$cour = mktime(0,0,0,$mois,$jour,$annee);
		$date = date("Y-m-d",$cour);
		$contact = $_GET['id'];
 
		foreach ($_POST  as $document=>$id)
		{
			if ($document!='insert')
			{				
				$sql="INSERT INTO `ENVOI` (`NUM_CONTACT`, `NUM_DOC`, `DATE_ENVOI`) "
				."VALUES ('$contact', '$document', '$date');";
 
				$exec=mysql_query($sql,$connec) or die("erreur -> ".mysql_error());
 
				echo "<SCRIPT LANGUAGE='JavaScript'>";
				echo "alert('L'envoi de document a bien été ajouté.')";
				echo "</SCRIPT LANGUAGUE>";
			}
		}
	}
si je fais un echo $contact -> $document -> date
j'ai affiché :

12 -> jour-> 2011-02-09
12 -> mois -> 2011-02-09
12 -> annee -> 2011-02-09
12 -> 4 -> 2011-02-09
12 -> 17 -> 2011-02-09

J'ai du quelque chose mais je ne vois plus
berti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 11h40   #2
Futur Membre du Club
 
Homme
Inscription : septembre 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 17
Points : 19
Points : 19
Par défaut Utilisation du foreach

L'utilisation du foreach n'est pas bonne.

Je pense que tu voulais enregistrer l'id de ton document.

dans ton code la variable $document représente les clés de ton tableau
(cad "jour", "mois", "annee"). Remplace dans ton foreach la variable document par $id.
touiks9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web