Structure de table sql
Fermé
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
-
28 mars 2013 à 10:09
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 28 mars 2013 à 17:11
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 28 mars 2013 à 17:11
A voir également:
- Structure de table sql
- Table ascii - Guide
- Table des matières word - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Blob sql ✓ - Forum Webmastering
8 réponses
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
Modifié par Bruce Willix le 28/03/2013 à 10:13
Modifié par Bruce Willix le 28/03/2013 à 10:13
Et si tu mettais un "n" de moins a année juste après PRIMARY KEY ?
:D
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
:D
Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot...
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 10:22
28 mars 2013 à 10:22
Ah oui tu as raison , c'est faute de frappe sur le clavier qui m'ajouter ce "n" et j'ai pas fait attention , merci :D, bonne journée
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
28 mars 2013 à 10:28
28 mars 2013 à 10:28
Pas de soucis. Si tu fais bcp d'import/export, hésite pas à ajouter un DROP TABLE devant, histoire d'avoir un truc net à chaque dump.
Petite question pour ma gouverne: pourquoi une double clé primaire? C'est tellement plus simple de lui demander de générer un index auto (et plus efficace pour tes tables également...)
Petite question pour ma gouverne: pourquoi une double clé primaire? C'est tellement plus simple de lui demander de générer un index auto (et plus efficace pour tes tables également...)
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 11:49
28 mars 2013 à 11:49
En fait j'ai 2 clés primaires car je vais faire ma deuxième table et de coup il y a l'année comme clé commun entre le 2 , je te remercie pour tes conseilles
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
28 mars 2013 à 11:53
28 mars 2013 à 11:53
Oui, j'avais bien saisi, mais ce n'est pas la peine d'en faire un clé primaire pour autant. Tu peux faire des JOIN sur des champs qui ne sont pas des clés primaires (c'est d'ailleurs le cas le plus fréquent). La clé primaire sert à deux choses principalement:
- faire en sorte que l'enregistrement soit unique (c'est sa fonction de base)
- faire en sorte qu'il soit indexé
- faire en sorte que l'enregistrement soit unique (c'est sa fonction de base)
- faire en sorte qu'il soit indexé
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 11:58
28 mars 2013 à 11:58
mais j'ai sais pas comment je fais la jointure !!!!
est que tu peux me donner un exemple , merci d'avance
est que tu peux me donner un exemple , merci d'avance
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
28 mars 2013 à 12:08
28 mars 2013 à 12:08
Bien sur. Le concept c'est que tu as deux tables
matable1:[ID,champ1,champ2,...]
matable2:[ID,champ1,field2,...]
Ou les ID sont des autonumbers dont tu ne te préoccupes pas.
Avec la requête, tu vas en fait créer une nouvelle table, dans laquelle tu mets ce que tu veux. La structure générale d'un SELECT c'est SELECT mes_champs FROM mes_tables WHERE mes_conditions.
Et c'est quand tu précises les tables que tu fais le join:
SELECT * FROM matable1,matable2
te donnera toutes les lignes des deux tables
SELECT * FROM matable1,matable2 WHERE champ1.matable1=champ1.matable2
te sortira tous les enregistrements ou champ1 est identique.
Tu trouveras un très bon tuto ici: https://sqlpro.developpez.com/cours/sqlaz/jointures/
matable1:[ID,champ1,champ2,...]
matable2:[ID,champ1,field2,...]
Ou les ID sont des autonumbers dont tu ne te préoccupes pas.
Avec la requête, tu vas en fait créer une nouvelle table, dans laquelle tu mets ce que tu veux. La structure générale d'un SELECT c'est SELECT mes_champs FROM mes_tables WHERE mes_conditions.
Et c'est quand tu précises les tables que tu fais le join:
SELECT * FROM matable1,matable2
te donnera toutes les lignes des deux tables
SELECT * FROM matable1,matable2 WHERE champ1.matable1=champ1.matable2
te sortira tous les enregistrements ou champ1 est identique.
Tu trouveras un très bon tuto ici: https://sqlpro.developpez.com/cours/sqlaz/jointures/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 12:01
28 mars 2013 à 12:01
par contre j'ai un autre souci je voudrais bien que tu m'aides merci voilà l'explication :
Je suis un peu perdu dans nom code et j'arrive pas à voir le résultat que je cherche , en fait j'ai 3 colonnes (Mois , P1, P2) , je veux afficher 12 lignes pour chaque colonne car je dois remplir le 2 chapms P1et P2 selon les mois (12 mois) , je veux pas faire le 12 mois dans une liste déroulante , aussi les valeurs à remplir ça dépend des années de coup j'ai mis les années dans une liste déroulante parce les années ça change avec l'année courante,
Là je veux que l'utilisateur choisisse l'année de la liste déroulante des années et après il remplisse le 12 lignes du chaque colonne et après quand il clique sur le bouton envoyé les données vont être enregistrer dans ma base, le problème dans mon code c'est :
- le serveur il prend que la dernière ligne et l'enregistre ( je sais pas quoi faire pour avoir le 12 lignes enregistrés)
- pour la liste déroulante quand je choisi l'année directement il prend l'année et actualise la page il ne laisse pas l'année choisie affiché et il me permet pas de rentrer les autres valeurs (P1, P2) , espérant que je suis arriver à exprimer bien qu'est ce je veux , est que tu peux m'aider de modifier le code de façon que peux avoir les résultats que je cherche , merci d'avance.
Voilà mon code source :
<?php
require_once('dbconnect.php');
?>
<html>
<head>
<title>ESPACE PRIVE </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center" class="titre"><strong>- : : : Les paramètres du bases : : : -</strong></p>
<br>
<?php
//On verifie que le formulaire a été envoye
if(isset( $_POST['annee']) && isset($_POST['Mois']) && isset($_POST['P1']) && isset($_POST['P2']))
{
//mettre les variables dans une requette SQL
$annee = $_POST['annee'];
$Mois = $_POST['Mois'];
$P1 = $_POST['P1'];
$P2 = $_POST['P2'];
$sql='INSERT INTO parmetres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$Mois.'", "'.$P1.'","'.$P2.'")';
$requete = $db->query($sql) ;
}
else{
}
?>
<form action="parametre.php" method="post" name="formulaire" >
<table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
<TR><TH>Mois</TH><TH>P1</TH><TH>P2</TH></TR>
<tr>
<td width="144"><input name="P1" type="text" id="P1"></td>
<td width="144"><input name="P2" type="text" id="P2"></td>
<td>
<tr>
<td width="144"><input name="P1" type="text" id="P1"></td><input name="Mois" type="text" id="Mois"></td>
</tr>
<td width="144"><input name="P2" type="text" id="P2"></td>
<td><input name="Mois" type="text" id="Mois"></td>
</tr>
<td>
<?php
echo '<select name="annee" onchange="submit()">';
$annee=date("Y");
echo '<option value="">Choisir une année...</option>';
for($i=2010;$i<=$annee ;$i++){
echo '<option value="'.$i.'">'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
?>
</td>
</tr>
<tr>
<td height="50" colspan="2"><div align="center">
<input type="submit" name="envoi" value="Envoyer">
</tr>
</table>
</form>
</body>
</html>
<html>
<div class="foot"><a href="accueil.php">Retour à l'accueil</a></div>
</body>
</html>
Je suis un peu perdu dans nom code et j'arrive pas à voir le résultat que je cherche , en fait j'ai 3 colonnes (Mois , P1, P2) , je veux afficher 12 lignes pour chaque colonne car je dois remplir le 2 chapms P1et P2 selon les mois (12 mois) , je veux pas faire le 12 mois dans une liste déroulante , aussi les valeurs à remplir ça dépend des années de coup j'ai mis les années dans une liste déroulante parce les années ça change avec l'année courante,
Là je veux que l'utilisateur choisisse l'année de la liste déroulante des années et après il remplisse le 12 lignes du chaque colonne et après quand il clique sur le bouton envoyé les données vont être enregistrer dans ma base, le problème dans mon code c'est :
- le serveur il prend que la dernière ligne et l'enregistre ( je sais pas quoi faire pour avoir le 12 lignes enregistrés)
- pour la liste déroulante quand je choisi l'année directement il prend l'année et actualise la page il ne laisse pas l'année choisie affiché et il me permet pas de rentrer les autres valeurs (P1, P2) , espérant que je suis arriver à exprimer bien qu'est ce je veux , est que tu peux m'aider de modifier le code de façon que peux avoir les résultats que je cherche , merci d'avance.
Voilà mon code source :
<?php
require_once('dbconnect.php');
?>
<html>
<head>
<title>ESPACE PRIVE </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<p align="center" class="titre"><strong>- : : : Les paramètres du bases : : : -</strong></p>
<br>
<?php
//On verifie que le formulaire a été envoye
if(isset( $_POST['annee']) && isset($_POST['Mois']) && isset($_POST['P1']) && isset($_POST['P2']))
{
//mettre les variables dans une requette SQL
$annee = $_POST['annee'];
$Mois = $_POST['Mois'];
$P1 = $_POST['P1'];
$P2 = $_POST['P2'];
$sql='INSERT INTO parmetres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$Mois.'", "'.$P1.'","'.$P2.'")';
$requete = $db->query($sql) ;
}
else{
}
?>
<form action="parametre.php" method="post" name="formulaire" >
<table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
<TR><TH>Mois</TH><TH>P1</TH><TH>P2</TH></TR>
<tr>
<td width="144"><input name="P1" type="text" id="P1"></td>
<td width="144"><input name="P2" type="text" id="P2"></td>
<td>
<tr>
<td width="144"><input name="P1" type="text" id="P1"></td><input name="Mois" type="text" id="Mois"></td>
</tr>
<td width="144"><input name="P2" type="text" id="P2"></td>
<td><input name="Mois" type="text" id="Mois"></td>
</tr>
<td>
<?php
echo '<select name="annee" onchange="submit()">';
$annee=date("Y");
echo '<option value="">Choisir une année...</option>';
for($i=2010;$i<=$annee ;$i++){
echo '<option value="'.$i.'">'.$i.'</option>';
}
echo '</select>';
echo '<br /><br />';
?>
</td>
</tr>
<tr>
<td height="50" colspan="2"><div align="center">
<input type="submit" name="envoi" value="Envoyer">
</tr>
</table>
</form>
</body>
</html>
<html>
<div class="foot"><a href="accueil.php">Retour à l'accueil</a></div>
</body>
</html>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 13:46
28 mars 2013 à 13:46
voir ma réponse dans ton autre post
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 14:03
28 mars 2013 à 14:03
c'est fait
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 16:06
28 mars 2013 à 16:06
quelqu'un me répond je suis vraiment bloquée j'arrive pas à trouver la solution comment je peux faire pour afficher le 12 lignes de 3 champs , et l'enregistre dans ma base de données , parce que je faisais
le 1ér input et pour les autre j'arrive pas
le 1ér input et pour les autre j'arrive pas
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 17:11
28 mars 2013 à 17:11
vas voir dans l'autre post je viens juste de te mettre une solution qui fonctionne