Pbs de requete insertion dans les tables
king-gey
Messages postés
5
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
Aidez-moi car je n'arrive pas à faire cette requettre
J'ai trois tables : membres, sport, membre_sport(la table t_membre_sport regroupe les clés primaires des deux autres.)
Je voudrais que chaque membre choisisse un ou plusieurs sports. Chaque sport a 3 niveaux (debutant, initié, confirmé)
J'arrive à faire une requête qui insère le nom, le prénom et l'âge. Je n'arrive pas à faire une requête qui insère les cases à cocher et les boutons radio. Je n'arrive pas à voir comment récupérer l'id_membre pour le mettre dans ma table membre_sport. Et qu'il corresponde au sport qu'il a choisi. Je ne sais pas si quelqu'un comprendra ma demande...
merci d'avance
Voici mes tables :
table t_membres:
<tableau>
<ligne>
<entete>id_membre</entete>
<entete>nom</entete>
<entete>age</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>jean</cellule>
<cellule>22</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>marie</cellule>
<cellule>19</cellule>
</ligne>
</tableau>
table t_sport:
<tableau>
<ligne>
<entete>id_sport</entete>
<entete>sport</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>basket</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>foot</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>aviron</cellule>
</ligne>
</tableau>
table t_membre_sport:
<tableau>
<ligne>
<entete>membre_ID</entete>
<entete>sport_ID</entete>
<entete>niveau</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>2</cellule>
<cellule>debutant</cellule>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>3</cellule>
<cellule>confirmé</cellule>
</ligne>
<ligne>
<cellule>-</cellule>
<cellule>-</cellule>
<cellule>-</cellule>
</ligne>
</tableau>
voici mon code:
$liaison = mysql_connect("localhost","root","");
mysql_select_db("sporteams");
if(isset($_POST['bouton']))
{
$sql = "INSERT INTO t_membres(nom_membre, age_membre) VALUES('".$_POST['nom_membre']."','".$_POST['age_membre']."')";
$resultat=mysql_query($sql);
header("Location:membres_gestion.php");
}
//------Requete des cases à cocher-------------------
$sql2="SELECT * FROM t_sport";
$resultat2=mysql_query($sql2);
//--------------------------------------------------
?>
<form id="monform" name="form1" method="post" action="membres_ajout.php">
<fieldset>
<legend>Inscription du membre</legend>
<p>
<label>Nom:
<input type="text" name="nom_membre" />
</label>
</p>
<p>
<label>Age :
<input type="text" name="age_membre" />
</label>
</p>
</fieldset>
<br />
<fieldset>
<legend>Vos sports</legend><br />
<table width="600" border="1" cellspacing="0" cellpadding="5">
<tr>
<th>Sport</th>
<th>Niveau</th>
</tr>
<?php while (($data_activites=mysql_fetch_assoc($resultat2))!==false):?>
<tr>
<td>
<input type="checkbox" name="<?php echo $data_activites['sport'];?>"
value="<?php echo $data_activites['id_sport'];?>" />
<?php echo $data_activites['sport'];?><br />
</td>
<td>
Débutant<input type="radio" name="choix" value="debutant" />
Initié<input type="radio" name="choix" value="initié" />
Confirmé<input type="radio" name="choix" value="confirmé" />
</td>
</tr>
<?php endwhile;?>
</table>
<br /><br />
</fieldset>
<p>
<label>
<input type="submit" name="bouton" value="Envoyer" />
</label>
</p>
</form>
Aidez-moi car je n'arrive pas à faire cette requettre
J'ai trois tables : membres, sport, membre_sport(la table t_membre_sport regroupe les clés primaires des deux autres.)
Je voudrais que chaque membre choisisse un ou plusieurs sports. Chaque sport a 3 niveaux (debutant, initié, confirmé)
J'arrive à faire une requête qui insère le nom, le prénom et l'âge. Je n'arrive pas à faire une requête qui insère les cases à cocher et les boutons radio. Je n'arrive pas à voir comment récupérer l'id_membre pour le mettre dans ma table membre_sport. Et qu'il corresponde au sport qu'il a choisi. Je ne sais pas si quelqu'un comprendra ma demande...
merci d'avance
Voici mes tables :
table t_membres:
<tableau>
<ligne>
<entete>id_membre</entete>
<entete>nom</entete>
<entete>age</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>jean</cellule>
<cellule>22</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>marie</cellule>
<cellule>19</cellule>
</ligne>
</tableau>
table t_sport:
<tableau>
<ligne>
<entete>id_sport</entete>
<entete>sport</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>basket</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>foot</cellule>
</ligne>
<ligne>
<cellule>2</cellule>
<cellule>aviron</cellule>
</ligne>
</tableau>
table t_membre_sport:
<tableau>
<ligne>
<entete>membre_ID</entete>
<entete>sport_ID</entete>
<entete>niveau</entete>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>2</cellule>
<cellule>debutant</cellule>
</ligne>
<ligne>
<cellule>1</cellule>
<cellule>3</cellule>
<cellule>confirmé</cellule>
</ligne>
<ligne>
<cellule>-</cellule>
<cellule>-</cellule>
<cellule>-</cellule>
</ligne>
</tableau>
voici mon code:
$liaison = mysql_connect("localhost","root","");
mysql_select_db("sporteams");
if(isset($_POST['bouton']))
{
$sql = "INSERT INTO t_membres(nom_membre, age_membre) VALUES('".$_POST['nom_membre']."','".$_POST['age_membre']."')";
$resultat=mysql_query($sql);
header("Location:membres_gestion.php");
}
//------Requete des cases à cocher-------------------
$sql2="SELECT * FROM t_sport";
$resultat2=mysql_query($sql2);
//--------------------------------------------------
?>
<form id="monform" name="form1" method="post" action="membres_ajout.php">
<fieldset>
<legend>Inscription du membre</legend>
<p>
<label>Nom:
<input type="text" name="nom_membre" />
</label>
</p>
<p>
<label>Age :
<input type="text" name="age_membre" />
</label>
</p>
</fieldset>
<br />
<fieldset>
<legend>Vos sports</legend><br />
<table width="600" border="1" cellspacing="0" cellpadding="5">
<tr>
<th>Sport</th>
<th>Niveau</th>
</tr>
<?php while (($data_activites=mysql_fetch_assoc($resultat2))!==false):?>
<tr>
<td>
<input type="checkbox" name="<?php echo $data_activites['sport'];?>"
value="<?php echo $data_activites['id_sport'];?>" />
<?php echo $data_activites['sport'];?><br />
</td>
<td>
Débutant<input type="radio" name="choix" value="debutant" />
Initié<input type="radio" name="choix" value="initié" />
Confirmé<input type="radio" name="choix" value="confirmé" />
</td>
</tr>
<?php endwhile;?>
</table>
<br /><br />
</fieldset>
<p>
<label>
<input type="submit" name="bouton" value="Envoyer" />
</label>
</p>
</form>
A voir également:
- Pbs de requete insertion dans les tables
- Insertion table des matières word - Guide
- Touche insertion clavier - Guide
- Insertion video powerpoint - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
2 réponses
Si j'ai bien compri, il y a un problème pour les sport, car tu propose plusieurs choix mais il n'y a qune ligne pour le niveau. Donc du fait une ligne pour chaque sport avec son niveau associé. PUis pour l'insertion, tu regarde qui est coché et tu prend le niveau correspondant. Par exemple :
<?php while (($data_activites=mysql_fetch_assoc($resultat2))!==false):?>
<tr>
<td>
<input type="checkbox" name="<?php echo $data_activites['sport'];?>"
value="<?php echo $data_activites['id_sport'];?>" />
<?php echo $data_activites['sport'];?><br />
</td>
<td>
<?php $choix="choix". $data_activites['id_sport']; ?>
Débutant<input type="radio" name="<?php echo $choix; ?>" value="debutant" />
Initié<input type="radio" name="<?php echo $choix; ?>" value="initié" />
Confirmé<input type="radio" name="<?php echo $choix; ?>" value="confirmé" />
</td>
</tr>
<?php endwhile;?>
<?php while (($data_activites=mysql_fetch_assoc($resultat2))!==false):?>
<tr>
<td>
<input type="checkbox" name="<?php echo $data_activites['sport'];?>"
value="<?php echo $data_activites['id_sport'];?>" />
<?php echo $data_activites['sport'];?><br />
</td>
<td>
<?php $choix="choix". $data_activites['id_sport']; ?>
Débutant<input type="radio" name="<?php echo $choix; ?>" value="debutant" />
Initié<input type="radio" name="<?php echo $choix; ?>" value="initié" />
Confirmé<input type="radio" name="<?php echo $choix; ?>" value="confirmé" />
</td>
</tr>
<?php endwhile;?>
Bonjour,
Voici quelques billes pour t'aider.
-> Récupérer un identifiant tout juste inséré :
mysql_insert_id()
https://www.php.net/manual/en/function.mysql-insert-id.php
-> Récupérer la valeur d'un bouton radio :
$choix = (isset($_POST['choix'])) ? $_POST['choix'] : 'inconnu';
-> Récupérer la valeur de tes cases à cocher, c'est un peu plus compliqué. On va utiliser ton resultat2 :
https://www.php.net/manual/en/function.mysql-data-seek.php
Voilà, j'espère que ça te suffira.
Xavier
Voici quelques billes pour t'aider.
-> Récupérer un identifiant tout juste inséré :
mysql_insert_id()
https://www.php.net/manual/en/function.mysql-insert-id.php
-> Récupérer la valeur d'un bouton radio :
$choix = (isset($_POST['choix'])) ? $_POST['choix'] : 'inconnu';
-> Récupérer la valeur de tes cases à cocher, c'est un peu plus compliqué. On va utiliser ton resultat2 :
while (($data_activites = mysql_fetch_assoc($resultat2)) !== false)
{
$sportID = $data_activites['id_sport'];
$sportNom = $data_activites['sport'];
$coche = (isset($_POST[$sportNom])) ? $_POST[$sportNom] : false;
if ($coche !== false && $coche == $sportID)
{
$sqlSport = "INSERT INTO...";
$mysql_query($sqlSport);
}
}
// Du coup, on a « utilisé » $resultat2.
// Pour la boucle qui va suivre (affichage des sports), il faut le réinitialiser :
mysql_data_seek ($resultat2, 0);
https://www.php.net/manual/en/function.mysql-data-seek.php
Voilà, j'espère que ça te suffira.
Xavier