Page 1 sur 9
L'exploitation de donnée
Posté : 17 juil. 2005, 20:11
par elminio
Maintenant que tes tables sont crées, tu les remplies à la main avec 2-3 jeux de données, tu fais tes pages d'affichage et tu vois si ca convient et ensuite, tu fais le formulaire de saisie.
J'ai remplis manuellement mes tables, mais concernant mes tables de liaison
comment celà se passe t'il ?
Posté : 17 juil. 2005, 20:26
par ouckileou
quand tu ouvres un sujet, rappelle toi que ceux qui viennent dessus n'ont pas forcément suivi tes aventures depuis le début et ne savent pas forcément de quoi tu parles
alors situer un peu le contexte c'est bien
mais bon moi j'ai suivi...
quel est le problème ? pourquoi as-tu des difficultés avec des tables de liaisons ce sont des tables comme les autres
Posté : 17 juil. 2005, 20:59
par elminio
La citation du premier post provient de jpl de l'ancien sujet.
donc je voulais savoir comment je devais faire pour remplir mes tables de liaisons manuellement pour faire correspondent les données ?
Posté : 17 juil. 2005, 21:04
par ouckileou
La citation du premier post provient de jpl de l'ancien sujet.
oui ça j'avais bien compris merci, mais justement je te dis que les gens qui viennent sur ce sujet ne savent pas forcément qu'il y en a un autre
donc je voulais savoir comment je devais faire pour remplir mes tables de liaisons manuellement pour faire correspondent les données ?
bah c'est plutôt simple, si t'as enregistré un concours qui a l'identifiant 1, et que tu veux lui associer le mode "téléphonie" qui a l'id 2, ben tu inserts une ligne 1,2 dans concours_mode
Posté : 17 juil. 2005, 21:31
par elminio
Ok,
Ensuite
comment extraire les données de la base ? pour les affichés
j'ai commencé à faire un fichier mais il manque des parametres
mysql_connect("localhost","root","") or die ("Impossible de se connecter à MySQL");
mysql_select_db("bconcours") or die("Impossible de sélectionner la base de données");
$query_string="SELECT `concours`.*, `bandes`.*
FROM concours, bandes";
$query=mysql_query($query_string);
Posté : 17 juil. 2005, 21:39
par ouckileou
va faire un tour ici :
http://www.phpdebutant.org/
dans la colonne de droite tu as des petits tutos très simple dans lesquels tu trouveras toutes les pistes pour faire ce que tu veux

Posté : 17 juil. 2005, 22:07
par elminio
Voici un exemple de mon fichier :
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('bconcours',$db);
// on crée la requête SQL
$sql = 'SELECT nom,mois,dmois,bande,mode,report,lien,info FROM concours,bandes,modes WHERE id_concours LIKE 1';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo ' <i>Nom : '.$data['nom'].'</i><br>';
echo ' <i>Mois : '.$data['mois'].'</i><br>';
echo ' <i>Détails : '.$data['dmois'].'</i><br>';
echo ' <i>Bande : '.$data['bande'].'</i><br>';
echo ' <i>Mode : '.$data['mode'].'</i><br>';
echo ' <i>Report : '.$data['report'].'</i><br>';
echo ' <i>lien : '.$data['lien'].'</i><br>';
echo ' <i>info : '.$data['info'].'</i><br>';
}
// on ferme la connexion à mysql
mysql_close();
pour afficher mon 1er enregistrement dois je utilisé les jointures ?
Posté : 17 juil. 2005, 22:20
par ouckileou
le premier enregistrement de quoi ???!
Posté : 17 juil. 2005, 22:23
par elminio
j'ai entrée des donnée dans la base et j'arrive à les extraires mais il m'affiche tous.
je ne veux voir apparaitre que mon premier enregistrement
Posté : 17 juil. 2005, 22:28
par ouckileou
LIMIT x,y => affiche y enregistrement(s) à partir de l'enregistrement x
Posté : 17 juil. 2005, 22:51
par elminio
ok ça fonctionne merci ouckileou.
Posté : 18 juil. 2005, 17:28
par pjl
on peut revoir la structure finale des tables ainsi que ta requête.
La requete que tu montre ici m'étonne beaucoup.
Il n'y a aucune condition de jointure.
Posté : 19 juil. 2005, 10:08
par elminio
Voici ma base :
CREATE TABLE `bandes` (
`id_bande` smallint(5) unsigned NOT NULL auto_increment,
`bande` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_bande`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
--
-- Contenu de la table `bandes`
--
INSERT INTO `bandes` VALUES (1, '160m');
INSERT INTO `bandes` VALUES (2, '80m');
INSERT INTO `bandes` VALUES (3, '40m');
INSERT INTO `bandes` VALUES (4, '30m');
INSERT INTO `bandes` VALUES (5, '20m');
INSERT INTO `bandes` VALUES (6, '17m');
INSERT INTO `bandes` VALUES (7, '15m');
INSERT INTO `bandes` VALUES (8, '12m');
INSERT INTO `bandes` VALUES (9, '10m');
INSERT INTO `bandes` VALUES (10, '6m');
INSERT INTO `bandes` VALUES (11, '2m');
INSERT INTO `bandes` VALUES (12, '70cm');
CREATE TABLE `concours` (
`id_concours` smallint(5) unsigned NOT NULL auto_increment,
`nom` varchar(255) NOT NULL default '',
`mois` varchar(255) NOT NULL default '',
`dmois` varchar(255) NOT NULL default '',
`report` varchar(255) NOT NULL default '',
`lien` varchar(255) NOT NULL default '',
`info` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_concours`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
CREATE TABLE `concours_bande` (
`id_concours` smallint(5) unsigned NOT NULL default '0',
`id_bande` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`id_concours`,`id_bande`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `concours_mode` (
`id_concours` smallint(5) unsigned NOT NULL default '0',
`id_mode` smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (`id_concours`,`id_mode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `modes` (
`id_mode` smallint(5) unsigned NOT NULL auto_increment,
`mode` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_mode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table `modes`
--
INSERT INTO `modes` VALUES (3, 'mode digitaux');
INSERT INTO `modes` VALUES (2, 'télégraphie');
INSERT INTO `modes` VALUES (1, 'phonie');
Et la requete utiliser
$sql = 'SELECT nom,mois,dmois,bande,mode,report,lien,info FROM concours,bandes,modes LIMIT 0,1';
Posté : 19 juil. 2005, 21:34
par pjl
Et la requete utiliser
$sql = 'SELECT nom,mois,dmois,bande,mode,report,lien,info FROM concours,bandes,modes LIMIT 0,1';
Bon, je suis tétu, borné ou ce que l'on veut, mais quand je vois cette requête, pour moi, le PB est loin d'être résolu.
Et tant que tu n'auras pas compris la logique pour exploiter tes résultats, tu coinceras dans ton formulaire.
Alors tu te prends une dizaine de concours, tu les rentres à la main et tu vois ce que ca donne sur ta page.
Un petit résumé sur les jointures :
http://www.iut.univ-st-etienne.fr/cours ... inture.htm
Posté : 19 juil. 2005, 22:29
par elminio
Code : Tout sélectionner
SELECT * FROM concours, concours_bande, bandes WHERE concours.id_concours=concours_bande.id_concours AND concours_bande.id_bande=bandes.id_bande
Voilà ma jointure repris de :
SELECT * FROM table1, table2, table3, ...
WHERE table1.attribut1=table2.attribut1 AND table2.attribut2=table3.attribut2 AND ...;
ça doit être mieux maintenant.
