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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 15:18

Ok j'ai fait le changement ("string" - j'ai un esprit un peu décalé)
String = chaine de caractères bien entendu :wink:

Donc tu as ce message:
#1064 - You have an error in your SQL syntax near '$colname_chang = "-1"' at line 1
je me demande comment tu te retrouves avec "$colname_chang" dans la requete au lieu de n'avoir que son contenu !?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

13 janv. 2006, 15:42

Donc tu as ce message:
#1064 - You have an error in your SQL syntax near '$colname_chang = "-1"' at line 1
je me demande comment tu te retrouves avec "$colname_chang" dans la requete au lieu de n'avoir que son contenu !?
Je serais heureux de pouvoir t'aider à répondre à cette question mais malheureusement mes connaissances sont très limités dans ce domaine! Sauf que peut-être n'ayant pas activé la page prècédente, il ne peut connaître la valeur de la variable :?:

Cyrano,
J'ai fait les changement avec la ficelle de Truc (commplètement décalè) et lorsque je teste la requête dans phpMyAdmin c'est identique au message prècédent!

Je me souviens que j'avais du changé de phpMyAdmin en local car les tables que j'y avais écrites ne pouvais être lu chez OVH qui emplois une version de l'âge de pierre (2.5.7) ... il n'y aurait pas un truc à voir de ce côté! Oui, je n'en dort plus alors je pense ... !

Merci à tous
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 15:59

montre nous le code de la requete tel quelle est maintenant et la génération (echo) celle que tu exécute dans phpMyAdmin;

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

13 janv. 2006, 16:05

Ouch! Ta question ... y'a une différence entre les deux :?

Voici la requête
$colname_chang = "-1";
if (isset($_GET['part'])) {
  $colname_chang = (get_magic_quotes_gpc()) ? $_GET['part'] : addslashes($_GET['part']);
}
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = sprintf("SELECT t1.ID_coureur, 
														t1.nom, 
														t1.prenom, 
														t2.id_categorie, 
														t2.nom_categorie, 
														t3.id_club, 
														t3.nom_cub, 
														t4.acrho_club_id_club, 
														t4.acrho_participant_ID_participant, 
														t4.annee, 
														t4.dossard, 
														t4.acrho_categorie_ID_categorie ".
										"FROM acrho_participant AS t1, 
													acrho_categorie AS t2, 
													acrho_club AS t3, 
													acrho_changement AS t4 ".
										"WHERE t1.ID_coureur = %d ".
										"AND t4.acrho_participant_ID_participant = t1.ID_coureur ".
										"AND t4.acrho_categorie_ID_categorie = t2.id_categorie ".
										"AND t4.acrho_club_id_club = t3.id_club", $colname_chang);

$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 16:13

le code de la requete semble correct à part cette ligne (le string quoi :o )
$colname_chang = "-1"; 
=>
$colname_chang = -1; 
Ouch! Ta question ... y'a une différence entre les deux :?
oui essentiellement pour voir le contenu de la variable "$colname_chang" =>
echo '<p>'.$query_chang.'</p>';
est-ce que tu fait des tests avec en passant une donnée dans l'url ?
$_GET['part'] existe ? dans le cas contraire il y a une recherche de ID_coureur=-1 qui n'existe pas !!

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

13 janv. 2006, 16:39

le code de la requete semble correct à part cette ligne (le string quoi :o )
$colname_chang = "-1"; 
=>
$colname_chang = -1; 
Je dois faire ce changement?
echo '<p>'.$query_chang.'</p>';
est-ce que tu fait des tests avec en passant une donnée dans l'url ?
$_GET['part'] existe ? dans le cas contraire il y a une recherche de ID_coureur=-1 qui n'existe pas !!
Il me semble que si :roll: dans ma 1er page [part_affect2.php]
<a href="affect2.php?part=<?php echo $row_participant['ID_coureur']; ?>">Affectation</a>
[affect2.php] étant ma page où il ya un problème avec la requête.

Voilà
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 16:46

oui tu dois faire le changement
=>
 $colname_chang = -1;
puisque le champ ID_coureur est de type entier donc dans la requete si la variable GET est définie tu te retrouves avec ID_coureur= 120 (120 étant un exemple) or si la variable GET n'existe pas tu as ID_coureur="-1" qui n'est pas correct.
echo '<p>'.$query_chang.'</p>';
ce bout de code est à inserer apres la construction de la requete, tu auras un affichage de la requete générée (complete avec le contenu de la variable) et c'est cet affichage qu'il faut exécuter dans phpMyAdmin et nous la montrer

Le passage de la variable "pert" est correct ainsi

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

13 janv. 2006, 16:59

Si c'est bien ceci et ainsi
$colname_chang = -1;
if (isset($_GET['part'])) {
  $colname_chang = (get_magic_quotes_gpc()) ? $_GET['part'] : addslashes($_GET['part']);
}
mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = sprintf("SELECT t1.ID_coureur, 
														t1.nom, 
														t1.prenom, 
														t2.id_categorie, 
														t2.nom_categorie, 
														t3.id_club, 
														t3.nom_cub, 
														t4.acrho_club_id_club, 
														t4.acrho_participant_ID_participant, 
														t4.annee, 
														t4.dossard, 
														t4.acrho_categorie_ID_categorie ".
										"FROM acrho_participant AS t1, 
													acrho_categorie AS t2, 
													acrho_club AS t3, 
													acrho_changement AS t4 ".
										"WHERE t1.ID_coureur = %d ".
										"AND t4.acrho_participant_ID_participant = t1.ID_coureur ".
										"AND t4.acrho_categorie_ID_categorie = t2.id_categorie ".
										"AND t4.acrho_club_id_club = t3.id_club", $colname_chang);

$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);
echo '<p>'.$query_chang.'</p>'; 
que je dois l'entrée dans la fenêtre SQL ... le message est toujours
Base de données kainbuye - Table societaires sur le serveur sql8
Erreur

requête SQL :

$colname_chang = -1

MySQL a répondu:


#1064 - You have an error in your SQL syntax near '$colname_chang = -1' at line 1
]

(*,)
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 17:22

c'est bien cela mais il faut afficher la requete avant l'exécution (mysql_query()) car il y a un "die" et donc en cas d'erreur le reste du code n'et pas exécuté :wink:

essaie ça:
$colname_chang = -1;

if (isset($_GET['part'])) 
{
	$colname_chang = (get_magic_quotes_gpc()) ? $_GET['part'] : addslashes($_GET['part']);
}
echo '<p>$colname_chang= '.$colname_chang.'</p>'; // affichage pour verifier le contenu de la variable

mysql_select_db($database_kainbuye, $kainbuye);
$query_chang = "SELECT t1.ID_coureur,
						t1.nom,
						t1.prenom,
						t2.id_categorie,
						t2.nom_categorie,
						t3.id_club,
						t3.nom_cub,
						t4.acrho_club_id_club,
						t4.acrho_participant_ID_participant,
						t4.annee,
						t4.dossard,
						t4.acrho_categorie_ID_categorie ".
				"FROM acrho_participant AS t1,
						acrho_categorie AS t2,
						acrho_club AS t3,
						acrho_changement AS t4 ".
				"WHERE t1.ID_coureur = ".$colname_chang." ".
						"AND t4.acrho_participant_ID_participant = t1.ID_coureur ".
						"AND t4.acrho_categorie_ID_categorie = t2.id_categorie ".
						"AND t4.acrho_club_id_club = t3.id_club";

echo '<p>'.$query_chang.'</p>';

$chang = mysql_query($query_chang, $kainbuye) or die(mysql_error());
$row_chang = mysql_fetch_assoc($chang);
$totalRows_chang = mysql_num_rows($chang);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

13 janv. 2006, 17:33

Bin ben ... rien ne change dans phpMyAdmin et dans ma page y'a du nouveau:
$colname_chang= 109

SELECT t1.ID_coureur, t1.nom, t1.prenom, t2.id_categorie, t2.nom_categorie, t3.id_club, t3.nom_cub, t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie FROM acrho_participant AS t1, acrho_categorie AS t2, acrho_club AS t3, acrho_changement AS t4 WHERE t1.ID_coureur = 109 AND t4.acrho_participant_ID_participant = t1.ID_coureur AND t4.acrho_categorie_ID_categorie = t2.id_categorie AND t4.acrho_club_id_club = t3.id_club
Bon ici, je vais changé d'air au boulot donc ne pas s'inquièter si vous n'avez pas de réponse encore aujourd'hui et merci pour tout

A+
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 janv. 2006, 17:35

Bon alors si tu exécute cette requete tu obtiens cette erreur ???? :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

14 janv. 2006, 01:29

D'après ta réponse j'imagine que c'est un sacré problème que je rencontre!

Qu'est-ce que je peux faire?

Le combat est-il perdu?

Ce que je veux faire est une chose imposible?

:tir2:
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 janv. 2006, 01:59

Non c'est pas impossible juste qu'il y a un os quelque part.

tu copies bien ceci et tu le colle dans phpmyadmin hein ?
SELECT t1.ID_coureur, t1.nom, t1.prenom, t2.id_categorie, t2.nom_categorie, t3.id_club, t3.nom_cub, t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie FROM acrho_participant AS t1, acrho_categorie AS t2, acrho_club AS t3, acrho_changement AS t4 WHERE t1.ID_coureur = 109 AND t4.acrho_participant_ID_participant = t1.ID_coureur AND t4.acrho_categorie_ID_categorie = t2.id_categorie AND t4.acrho_club_id_club = t3.id_club
impossible que tu ait cette erreur:
#1064 - You have an error in your SQL syntax near '$colname_chang = -1' at line 1
car pas de "$colname_chang" en vue !!!

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

14 janv. 2006, 11:01

C'est pas vraiment cela que je recopiais :axe: En faite, j'y metais la requête compléte ! ! !

Alors, le message change un peu beaucoup
SELECT t1.ID_coureur, t1.nom, t1.prenom, t2.id_categorie, t2.nom_categorie, t3.id_club, t3.nom_cub, t4.acrho_club_id_club, t4.acrho_participant_ID_participant, t4.annee, t4.dossard, t4.acrho_categorie_ID_categorie
FROM acrho_participant AS t1, acrho_categorie AS t2, acrho_club AS t3, acrho_changement AS t4
WHERE t1.ID_coureur =109 AND t4.acrho_participant_ID_participant = t1.ID_coureur AND t4.acrho_categorie_ID_categorie = t2.id_categorie AND t4.acrho_club_id_club = t3.id_club LIMIT 0 , 30 
Encore désolè de ne pas avoir compris ce que l'on voulait de moi et merci pour cette patience :roll:
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 janv. 2006, 12:49

Le principal est que tu as compris pour les prochaines fois :wink:

Sinon elle fonctionne cette requete ? un résultat dans myadmin?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute