Page 1 sur 7

Comment faire une requête pour des tables en relation?

Posté : 11 janv. 2006, 00:34
par Sebe
Salut,

J'ai fait en colaboration avec ce site mes premières tables
Image qui ont l'air de convenir au résultat que je veux atteindre.
Pour l'encodage dans les tables 'acrho_catégorie', 'acrho_participant', 'acrho_club' et 'acrho_course', j'ai fait un petit script qui ne pas pas poser de problème (grâce aux nombreux bouquins et des âmes charitables qui me remettaient sur la bonne voie).

Par contre, je coince quand je veux écrire le scrip qui me servira à remplir les 2 dernières tables! Je ne vois déjà pas comment faire ma requête et surtout sélectionner mes tables!

J'ai fait ceci pour 'acrho_changement' mais ... !
<?php
$colname_chang = "-1";
if (isset($_GET['chang'])) {
  $colname_chang = (get_magic_quotes_gpc()) ? $_GET['chang'] : addslashes($_GET['chang']);
}
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = sprintf("SELECT * FROM acrho_participant, acrho_changement, acrho_club, acrho_categorie WHERE ID_coureur = %s", $colname_chang);
$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
?>
Si on peut encore m'aider ...

Merci

Posté : 11 janv. 2006, 00:37
par Cyrano
On peut, mais je suis pas certain de bien saisir la question exacte. Quelles données souhaites-tu obtenir de quelles tables en m'expliquant ce qui lie les deux tables (2 ou + d'ailleurs)

Au passage, ça, c'est du SQL :arrow: sujet déplacé.

Posté : 11 janv. 2006, 01:03
par Sebe
Au passage, ça, c'est du SQL :arrow: sujet déplacé.
Sorry!
On peut, mais je suis pas certain de bien saisir la question exacte. Quelles données souhaites-tu obtenir de quelles tables en m'expliquant ce qui lie les deux tables (2 ou + d'ailleurs)
Je suis toujours dans mes classements de course à pied! C'est déjà à toi que je dois cette avancé ... de jolies tables que tu m'as aidé à faire.

Mon participant est succeptible de changer de club, de catégorie et/ou dossard chaque année. Et pourtant pour éditer ces fameux classements, j'ai besoin de remplir mes tables avec des données pour obtenir ce résultat
http://img529.imageshack.us/img529/4622 ... ent7oj.jpg

Donc, j'ai fait une table 'acrho_changement' que je dois remplir en tenant compte du participant! Chaque année, il lui est assigné un dossard, une catégorie et un club ... comment éditer le bon script pour l'enregistrement de ces données si je ne sais pas comment selectionner mes tables?

Merci

Posté : 11 janv. 2006, 10:29
par Cyrano
Bon, j'ai toujours un peu de mal à comprendre. Je vais quand même te donner un principe général.

Tu manipules des données sur un courreur, donc tu as fait une requête sur le courreur en question mais tu as peut-être besoin d'avoir des informations le concernant provenant d'autres tables. Il va donc falloir faire des jointures pour identifier dans les autres tables les informations pertinentes.

Le principe est le suivant : dans la table-1, tu as une clé primaire et une série de champs d'informations. Dans une table-2, tu as une clé primaire, une clé étrangère correspondant à la clé primaire de la table-1 et des champs contenant d'autres informations. Chaque ligne d'information de la table-2 correspond à un courreur enregistré dans la table-1, et dans l'autre sens, chaque ligne correspondant à un courreur peut correspondre à 0/n ligne(s) d'informations de la table-2.

Pour extraire les informations des deux tables, je fais une jointure qui ressemble à ceci:

Code : Tout sélectionner

SELECT t1.champ1, t1.champ2, t2.champ1, t2, champ2 FROM table-1 AS t1, table-2 AS t2 WHERE t1.champ0 = t2.champ0
Quelques explications :
Nous avons ici une requête sur deux tables : table-1 et table-2 : j'utilise un alias pour réduire l'écriture de code, note que ce n'est pas obligatoire, mais ça éclaircit aussi, donc j'ai mis dans la partie "FROM" table-1 AS t1 et je vais préfixer les champs nonp pas avec le nom de la table mais avec l'alias. Ce préfixe est obligatoire si plusieurs champs de différentes tables portent le même nom, sinon, ton serveur de base de données va te jeter en te parlant "d'ambiguïté" dans un message d'erreur.

Autre point, et c'est la clé de la jointure, je ne veux que des lignes d'information qui correspondent, donc j'ai une clause WHERE où je vérifie que les informations de la table-2 correspondent bien à la ligne en cours de la table-1 et j'utilise pour ça la comparaison des clés, la clé primaire de la table-1 qui doit impérativement correspondre à la clé étrangère de la table-2.

Voilà, je ne sais pas si ça apporte un élément de réponse à ta question ? :-k

Posté : 11 janv. 2006, 12:11
par sadeq
L'idée est de proposer des listes de participants, de clubs et de catégorie dans le formulaire de saisie des changement par année.

Voici comment construire un formulaire de saisie des changements, c'est à dire l'affectation d'un participant à un club, une catégorie et un dossard pour une année donnée :
<form>
<h1>Affectation des participants</h1>
<?php
//Classe HTML utilisée
$HTML = new HTML();

//Affichage de la liste  participant
//Propriétés de la liste 
$titre = "<p>Participant"; 
$nom = "id_participant";
$options = "SELECT id, nom FROM course.participant"; 
$option_selectionnée = 1; 
//Affichage de la liste à partir de la classe liste 
$HTML->liste($titre, $nom, $options, $option_selectionnée); 


//Affichage de la liste  club
//Propriétés de la liste 
$titre = "<P>Club"; 
$nom = "id_club"; 
$options = "SELECT id, nom FROM course.club"; 
$option_selectionnée = ""; 
//Affichage de la liste à partir de la classe liste 
$HTML->liste($titre, $nom, $options, $option_selectionnée); 


//Affichage de la liste  catégorie
//Propriétés de la liste 
$titre = "<p>Catégorie"; 
$nom = "id_categorie"; 
$options = "SELECT id, nom FROM course.categorie"; 
$option_selectionnée = 1; 
//Affichage de la liste à partir de la classe liste 
$HTML->liste($titre, $nom, $options, $option_selectionnée);

?>
<P>Année <input name="annee" value=2006>
<P>Dossard <input name="dossard">
<p><input type="submit" name="enregistrer" value="Enregistrer">
</form>

<?php
extract($_GET);
if ($enregistrer) {
	mysql_db_query("course", "INSERT INTO affectation values ('$id_participant','$id_club', '$id_categorie', $annee, $dossard)", mysql_connect("localhost", "root", "")) or die ("<P>Enregistrement non effectué!");
	echo "<P>Le participant $id_participant est enregistré avec succès.";
}

//*** CLASSES ET FONCTION UTILISEES ***
 
class HTML { 

//La fonction liste décrit comment une liste HTML est affichée 
//Elle utilise comme variables : 
//$titre : le titre de la liste 
//$nom: le nom de la balise SELECT 
//$options: un tableau qui est la source des d'options (valeur => texte) ou un texte SQL de type SELECT champs1, champs2 FROM ...
//$option_selectionnée : la valeur de l'option à sélectionner par défaut 
    function liste($titre="Liste 1", $nom="Liste1", $options=array(), $option_selectionnée=""){ 
        echo "$titre <SELECT name=\"$nom\"><OPTION value=\"\"></OPTION>"; 
        //Vérifier si='il s'agit d'une source SQL dont les deux premier champs sont la valeur et le texte de la liste
		if ($options && !is_array($options)){
			$rs = @mysql_query($options, mysql_connect("localhost", "root", "")); 
			//Cette boucle de fetch rempli le tableau des options                   
			$options = null;
			if ($rs)
				while ($row_rs = mysql_fetch_array($rs)) {
					//L'index du tableau est le champs1 de SQL et le texte est champs2 
    				$options [$row_rs[0]] = $row_rs[1]; 
				} 
		}
		//Affichage du contenu du tableau des options
		if ($options && is_array($options)  ) 
            foreach ($options as $valeur=>$texte) 
                echo "<OPTION value=\"$valeur\"".($valeur==$option_selectionnée?" SELECTED ":"").">$texte</OPTION>"; 
        echo "</SELECT>"; 
    }

} 
//Fin de la classe 
?>
Pour des soucis de simplification du code HTML concernat la construction des listes déroulantes, ce script une classe liste réutilisable.
Cette classe est utilisée pour créer les listes :
* participant issue de la table des participants
* club issue de la table club
* categorie de la table categorie

Quand le formulaire est envoyé un INSERT affecte la table changement (dans l'exemple elle s'appelle Affectation)

Posté : 11 janv. 2006, 13:37
par sadeq
J'ai testé aussi si les résultats de classement final que tu as présenté sont affiché comme désiré et ça marche avec ce programme d'exemple :
<?php
//Affichage du classement
//Propriétés de la table HTML 
$titre = "<h1>Challenge du Hainaut occidental 2003</h1>"; 
$nom = "classement";
$entête = array("Place","Dossard", "Nom", "Club", "Catégorie", "Temps");
$contenu = "SELECT 	class.place as Place, 
					class.dossard as Dossard, 
					part.nom as Nom, 
					club.nom as Club,
					cat.nom  as Catégorie,
					class.temps as Temps
			FROM course.classement as class, course.affectation as affect, 
				course.participant as part, course.club as club, course.categorie as cat
			WHERE affect.annee = class.annee AND affect.dossard = class.dossard
				AND affect.id_participant = part.id 
				AND affect.id_club = club.id
				AND affect.id_categorie = cat.id
			ORDER BY class.annee, class.temps";
$option_selectionnée = ""; 
//Affichage de la liste à partir de la classe liste 
$HTML = new HTML();
$HTML->table($titre, $nom, $entête, $contenu, $option_selectionnée); 

//*** CLASSES ET FONCTION UTILISEES ***
 
class HTML { 

//La fonction table décrit comment une table HTML est affichée 
//Elle utilise comme variables : 
//$titre : le titre de la table 
//$nom: le nom de la balise TABLE 
//$options: un tableau qui est la source des d'options (valeur => texte) ou un texte SQL de type SELECT champs1, champs2 FROM ...
//$option_selectionnée : la valeur de la ligne à selectionner par défaut 
    function table($titre="Table 1", $nom="Table1", $entete=array(), $contenu=array(), $ligne_selectionnée=""){ 
        echo "<TABLE border name=\"$nom\" width=\"100%\"><LEGEND>$titre</LEGEND>"; 
        //Vérifier si='il s'agit d'une source SQL dont les deux premier champs sont la valeur et le texte de la liste
		if ($contenu && !is_array($contenu)){
			$rs = @mysql_query($contenu, mysql_connect("localhost", "root", "")); 
			//Cette boucle de fetch rempli le tableau des options                   
			$contenu = null;
			if ($rs)
				while ($row_rs = mysql_fetch_assoc($rs)) 
					if ($row_rs){
    					$contenu [] = $row_rs;
				} 
		}
		//Affichage de l'entête si existe
		if ($entete && is_array($entete)){
			echo "<TR>";
            foreach ($entete as $valeur) 
                echo "<TH>$valeur</TH>";
		}
		//Affichage du contenu si existe
		if ($contenu && is_array($contenu))
            foreach ($contenu as $index=>$ligne)
				if ($ligne && is_array($ligne)){
					echo "<TR id=\"Ligne_$index\"".($ligne_selectionnée==$index? " style='background:silver; color:white'":"").">";
            		foreach ($ligne as $index=>$valeur)
                		echo "<TD id=\"Col_$index\">$valeur</TD>"; 
		}
        echo "</TABLE>"; 
    }  
} 
//Fin de la classe 
?>
Le classement s'affiche dans une table HTML, j'utilise pour ça une classe table HTML.

La base de données que j'ai pris comme exemple s'inspire de ta base que tu as présenté avec quelque rectif comme le lien entre classement et changement (Affectation dans mon exemple). Pour ça consulte surtout les clé primaires que j'ai fixées pour les tables.

En voici le script SQL:

Code : Tout sélectionner

-- Base de données: `course` -- -- -------------------------------------------------------- -- -- Structure de la table `affectation` -- CREATE TABLE IF NOT EXISTS `affectation` ( `id_participant` int(11) NOT NULL, `id_club` int(11) default NULL, `id_categorie` int(11) NOT NULL, `annee` year(4) NOT NULL, `dossard` int(11) NOT NULL, PRIMARY KEY (`annee`,`dossard`,`id_participant`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Contenu de la table `affectation` -- INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (3, 2, 1, 2003, 2); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (10, 2, 1, 2003, 6); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (7, 4, 2, 2003, 11); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (8, 5, 1, 2003, 15); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (9, 6, 2, 2003, 22); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (4, 3, 1, 2003, 125); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (6, 4, 1, 2003, 186); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (5, 7, 1, 2003, 187); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (1, 0, 1, 2003, 478); INSERT INTO `affectation` (`id_participant`, `id_club`, `id_categorie`, `annee`, `dossard`) VALUES (2, 1, 1, 2003, 957); -- -------------------------------------------------------- -- -- Structure de la table `categorie` -- CREATE TABLE IF NOT EXISTS `categorie` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Contenu de la table `categorie` -- INSERT INTO `categorie` (`id`, `nom`) VALUES (1, 'SE'); INSERT INTO `categorie` (`id`, `nom`) VALUES (2, 'V1'); -- -------------------------------------------------------- -- -- Structure de la table `classement` -- CREATE TABLE IF NOT EXISTS `classement` ( `annee` year(4) NOT NULL, `dossard` int(11) NOT NULL, `temps` time NOT NULL, `place` int(11) NOT NULL, PRIMARY KEY (`annee`,`dossard`), KEY `place` (`place`), KEY `temps` (`temps`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Contenu de la table `classement` -- INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 2, '00:38:56', 3); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 6, '00:40:11', 10); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 11, '00:40:00', 7); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 15, '00:40:03', 8); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 22, '00:40:06', 9); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 125, '00:39:32', 4); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 186, '00:39:50', 6); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 187, '00:39:41', 5); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 478, '00:37:11', 1); INSERT INTO `classement` (`annee`, `dossard`, `temps`, `place`) VALUES (2003, 957, '00:37:57', 2); -- -------------------------------------------------------- -- -- Structure de la table `club` -- CREATE TABLE IF NOT EXISTS `club` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table `club` -- INSERT INTO `club` (`id`, `nom`) VALUES (0, 'SANS'); INSERT INTO `club` (`id`, `nom`) VALUES (1, 'MMM'); INSERT INTO `club` (`id`, `nom`) VALUES (2, 'JCSA'); INSERT INTO `club` (`id`, `nom`) VALUES (3, 'TP VERT'); INSERT INTO `club` (`id`, `nom`) VALUES (4, 'KAIN B'); INSERT INTO `club` (`id`, `nom`) VALUES (5, 'FLOC'); INSERT INTO `club` (`id`, `nom`) VALUES (6, 'BAC'); INSERT INTO `club` (`id`, `nom`) VALUES (7, 'VELAINES'); -- -------------------------------------------------------- -- -- Structure de la table `participant` -- CREATE TABLE IF NOT EXISTS `participant` ( `id` int(11) NOT NULL auto_increment, `nom` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; -- -- Contenu de la table `participant` -- INSERT INTO `participant` (`id`, `nom`) VALUES (1, 'BOUGENIES'); INSERT INTO `participant` (`id`, `nom`) VALUES (2, 'HUYGHE'); INSERT INTO `participant` (`id`, `nom`) VALUES (3, 'MOURICE'); INSERT INTO `participant` (`id`, `nom`) VALUES (4, 'RAMAEKERS'); INSERT INTO `participant` (`id`, `nom`) VALUES (5, 'MANCHEL'); INSERT INTO `participant` (`id`, `nom`) VALUES (6, 'SOUDAN'); INSERT INTO `participant` (`id`, `nom`) VALUES (7, 'LECLERCQ'); INSERT INTO `participant` (`id`, `nom`) VALUES (8, 'HURTEUX'); INSERT INTO `participant` (`id`, `nom`) VALUES (9, 'SOLDAI'); INSERT INTO `participant` (`id`, `nom`) VALUES (10, 'DEPAUW');

Posté : 11 janv. 2006, 14:07
par Sebe
Cyrano & Sadeq,

Merci pour ce coup de main. Je vais maintenant assimiler vos réponses et essayer de comprendre ce que vous avez fait ... si j'ai des questions ... !

A+ et encore merci

Posté : 11 janv. 2006, 14:45
par Sebe
Cyrano,

Pour commencer, j'ai tapoté ta proposition comme ceci
<?php
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = "SELECT t1.id_categorie, t1.nom_categorie, t2.id_club, t2.nom_cub, t3.ID_coureur, t3.nom, t3.prenom, t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie FROM acrho_categorie AS t1, acrho_club AS t2, acrho_participant AS t3, acrho_changement AS t4 WHERE t4.acrho_club_id_club = t2.id_club AND t4.acrho_participant_ID_participant = t3.ID_coureur AND t4.acrho_categorie_ID_categorie = t1.id_categorie";
$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
?>
Mais malheureusement, quand je teste ma requête, il y a un je ne sais quoi qui ne fonctionne pas!
1054 Unknown column 't4.acrho_club_id_club' in 'field list'
Où ais-je fait une erreur?

Merci

Posté : 11 janv. 2006, 15:00
par Cyrano
Le message indique que le champ "acrho_club_id_club" n'existe pas dans la table t4 qui correspond donc ici à la table "acrho_changement"

Je vois bien le champ dans ton modèle plus haut, mais as-tu bien créé le champ dans la table de la base de données ?

Posté : 11 janv. 2006, 16:27
par Sebe
Plus que certain, regardes

Image

Posté : 11 janv. 2006, 16:45
par Cyrano
:shock: Ben alors je sais pas, sans la base, je peux rien tester en local, tout ce que je peux te proposer, c'est d'écrire un code un peu rangé qu'on puisse le suivre avec moins de difficultés, mais j'ai peur que ça ne change strictement rien:
<?php
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = "SELECT t1.id_categorie, t1.nom_categorie, ".
                      "t2.id_club, t2.nom_cub, ".
                      "t3.ID_coureur, t3.nom, t3.prenom, ".
                      "t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie ".
               "FROM acrho_categorie AS t1, acrho_club AS t2, acrho_participant AS t3, acrho_changement AS t4 ".
               "WHERE t4.acrho_club_id_club = t2.id_club ".
                 "AND t4.acrho_participant_ID_participant = t3.ID_coureur ".
                 "AND t4.acrho_categorie_ID_categorie = t1.id_categorie";
$chang           = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang       = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
?>

Posté : 11 janv. 2006, 16:46
par Sebe
J'ai fait un petit changement (enlevé t1, t2, t3 et t4)
<?php
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = "SELECT acrho_categorie.id_categorie, acrho_categorie.nom_categorie, acrho_club.id_club, acrho_club.nom_cub, acrho_participant.ID_coureur, acrho_participant.nom, acrho_participant.prenom, acrho_changement.acrho_club_id_club, acrho_changement.acrho_participant_ID_participant, acrho_changement.annee, acrho_changement.dossard, acrho_changement.acrho_categorie_ID_categorie WHERE acrho_changement.acrho_club_id_club = acrho_club.id_club AND acrho_changement.acrho_participant_ID_participant = acrho_participant.ID_coureur AND acrho_changement.acrho_categorie_ID_categorie = acrho_categorie.id_categorie";
$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
?>
et fait un test ... il y a une autre erreur
1064 You have an error in your SQL syntax near 'WHERE acrho_changement.acrho_club_id_club = acrho_club.id_club AND acrho_changemen' at line 1
Ne faudrait-il pas recommencer ma requête depuis le début?

Merci

Posté : 11 janv. 2006, 17:00
par Cyrano
Mouais, et pour cause, tu en as oublié un bout pllutôt important : le FROM, dans tout ça, il est où ?

Code : Tout sélectionner

SELECT acrho_categorie.id_categorie, acrho_categorie.nom_categorie, acrho_club.id_club, acrho_club.nom_cub, acrho_participant.ID_coureur, acrho_participant.nom, acrho_participant.prenom, acrho_changement.acrho_club_id_club, acrho_changement.acrho_participant_ID_participant, acrho_changement.annee, acrho_changement.dossard, acrho_changement.acrho_categorie_ID_categorie FROM acrho_categorie, acrho_club, acrho_participant, acrho_changement WHERE acrho_changement.acrho_club_id_club = acrho_club.id_club AND acrho_changement.acrho_participant_ID_participant = acrho_participant.ID_coureur AND acrho_changement.acrho_categorie_ID_categorie = acrho_categorie.id_categorie;

Posté : 11 janv. 2006, 17:18
par Sebe
Oups! Y'avais un espace à la fin dans le champs de ma table! Merci Cyrano

Donc voici ma requête
<?php
$colname_chang = "-1";
if (isset($_GET['chang'])) {
  $colname_chang = (get_magic_quotes_gpc()) ? $_GET['chang'] : addslashes($_GET['chang']);
}
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = sprintf("SELECT t1.id_categorie, t1.nom_categorie, t2.id_club, t2.nom_cub, t3.ID_coureur, t3.nom, t3.prenom, t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie FROM acrho_categorie AS t1, acrho_club AS t2, acrho_participant AS t3, acrho_changement AS t4 WHERE t4.acrho_club_id_club = t2.id_club AND t4.acrho_participant_ID_participant = t3.ID_coureur AND t4.acrho_categorie_ID_categorie = t1.id_categorie", $colname_chang);
$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
?>
Je vous fais savoir si cela tourne correctement!

Merci à tous

Posté : 11 janv. 2006, 23:12
par Sebe
RE,

J'ai un soucis avec
$colname_chang = "-1"; 
if (isset($_GET['chang'])) { 
  $colname_chang = (get_magic_quotes_gpc()) ? $_GET['chang'] : addslashes($_GET['chang']); 
}
Dans une requête simple (où une table est mise en cause, je n'ai aucun problème mais lorsque je mets plusieurs tables en //, il ne reconnais plus le liens que j'ai "bien" fait :oops: voir [Affectation]
http://60gp.ovh.net/~kainbuye/index.php ... &Itemid=42

De plus je voudrais faire un tri par ordre des années avec
ORDER BY ORDER BY acrho_changement.annee ASC
mais j'ai un message d'erreur

Merci