{MySQL} insert multiple dans table

Fermé
kamou13 Messages postés 2 Date d'inscription mercredi 14 octobre 2009 Statut Membre Dernière intervention 14 octobre 2009 - 14 oct. 2009 à 09:04
 kamou13 - 14 oct. 2009 à 20:16
Bonjour,

j'ai un tableau de ce genre en php:

Code Nom Prenom| 07-10-2009 |14-10-2009 |21-10-2009| 28-10-2009 
1   titi  toto |      X     |      X    |    X     |     X
2   tre   tro  |            |      X    |          |     X
3   uyt   kiol |      X     |           |    X     |
4   uu    tyry |            |      X    |          |


et mon but serait d'enregistrer dans une deuxième page toutes ces lignes dans une même table.

Merci de votre aide
A voir également:

2 réponses

Bonjour kamou13,

Normalement une structure de donnée se conçoit avant de faire un tableau, et se base sur la manière dont les différentes données sont combinées, mais si on va au plus simple :

Du tableau, je déduit que
1) Tu références des personnes identifiées par leur nom et prénom
2) Pour chaque personne, tu associe une série de dates qui semblent être un jour précis de la semaine ( en supposant que X veut dire associé, et blanc veut dire non associé, comme par exemple Présent/Absent)

Tu as du coup plusieurs solutions, je t'en donne 2
Dans tous les cas, à mon avis, il faut créer une table qui ne contient que les personnes :
Créer une table que j'appelle PERSONNES qui possède 3 colonnes : code (int), nom (varchar(30) et prenom varchar(15)
en mysql, tu peux utiliser pour code le type autoincrement, qui renseigne tout seul 1,2,3 ...

Première option :
Si tu as toujours a stocker 4 dates dans le mois, tu peut créer une table :
Presencemensuelle avec 5 colonnes : code_personne, date_sem1, date_sem2, date_sem3,date_sem4

Deuxième option :
La deuxième, qui est beaucoup plus souple, mais plus complexe à mettre en oeuvre :
Toujours en utilisant la table PERSONNES,
Créer une deuxième table que j'appelle PRESENCES, qui contient 2 colonnes : code_personne, unedate.
Tu peux aussi, si tu n'est pas familier des requêtes SQL, faire cette table avec trois colonnes :
id_personne (int) , unedate (date) , present(tinyint si mysql)
tu peux avoir, pour cette table un index unique ou une clé primaine la clé primaire (code_personne, unedate)

Dans la colonne present, il y aura la valeur 0 ou 1 par exemple.

Ce qu'il faut savoir, c'est que la deuxième, qui est plus souple en stockage, t'obligera à utiliser une table dite "pivot" pour faire tes requêtes, ce qui est peut-être trop compliqué pour ton niveau, que, sans préjuger, je devine plus proche de débutant que d'expert !
Bon courage de toute façon
1
<html>
<HEAD>
<LINK rel="STYLESHEET" type="text/css" href="planning.css">
</HEAD>
<body>
<form action='enreg-mercredi.php' method=post>



<table border>
<tr>
<th>Code</th>
<th>Nom</th>
<th>Prenom</th>
<?

$mois = date("m");
$annee = date("Y");
$jour = date("d");

$db=mysql_connect('localhost','root','');
$req="SELECT * FROM calendrier WHERE num_mois='$mois' AND nom_jour='mercredi' AND annee='$annee'";
$result = mysql_db_query("param",$req);
$nomb=mysql_num_rows($result);

while($row2 = mysql_fetch_row($result))
{
$num_jour=$row2[3];
$num_mois=$row2[5];
$annee=$row2[6];

print "<th>$num_jour-$num_mois-$annee</th>";
}

$db=mysql_connect('localhost','root','');
$req1="SELECT * FROM ca";
$result1 = mysql_db_query("bories-sept",$req1);
$total = mysql_num_rows($result1);

print 'Nombre echanciers : '.$total;

while($row = mysql_fetch_array($result1))
{
$code=$row[0];
$nom=$row[1];
$prenom=$row[2];
$mercredi=$row[5];


if ($nomb=='4' and $mercredi=='O')
{
$mer_1='X';
$mer_2='X';
$mer_3='X';
$mer_4='X';
print "
<tr><td bgcolor=lightblue align=left>".$row['code']."</td>
<td bgcolor=lightblue align=left>".$row['nom']."</td>
<td bgcolor=lightblue align=left>".$row['prenom']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_1' value='$mer_1'>".$row['$mer_1']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_2' value='$mer_2'>".$row['$mer_2']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_3' value='$mer_3'>".$row['$mer_3']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_4' value='$mer_4'>".$row['$mer_4']."</td></tr>";
}

else if ($nomb=='4' and $mercredi=='')
{
print "<tr><td>$code</td>
<td>$nom</td>
<td>$prenom</td>
<td><input type='text' class='inp_align' size='1' name='mer_1' value=''>".$row['$mer_1']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_2' value=''>".$row['$mer_2']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_4' value=''>".$row['$mer_3']."</td>
<td><input type='text' class='inp_align' size='1' name='mer_3' value=''>".$row['$mer_4']."</td></tr>";
}

}



print "<br></table>";
?>
<br><br><br>
<input type=submit>
</form>
</body>
</html>


voici ma première page php, comme tu peux le voir les dates sont trouvées à partir de la table calendrier et le reste à partir de la table ca, et je voudrai enregistrer ces lignes dans une autre table avec comme champ le code,nom prenom, annee, mois et jour ainsi que 4 ou 5 champs pour les mercredis suivant les mois, et un X dans le mercredi choisi mais le problème est que je ne sais pas quoi mettre dans ma seconde page pour que l'enregistrement soit fait dans la table sous différentes lignes (une par code).

Merci
0
problème resolu, merci quand meme.
0