Une variable que je ne sais pas récupérer à la page suivante

Mammouth du PHP | 545 Messages

08 févr. 2006, 14:55

Salut,

J'ai un petit soucis avec mes scripts ... je voudrais faire passer une variable mais pour déterminer un classement en fonction de l'id_course!
Mon passage ce fait ainsi:
<a href="classement_insertion.php?inser=<?php echo $row_classement['t5.id_course']; ?>">Ajouter une entr&eacute;e au tableau </a>
et voici le résultat sur la 2ème page:
You have an error in your SQL syntax near 'AND t6.acrho_course_id_course = t5.id_course ' at line 11
Comment est-ce que je sais que la variable est nul? Avec un coup de main, on a ajouter un complément à ma requête ...
voici ma requête
<?php require_once('../Connections/kainbuye.php');
$colname_insertion = "-1";
if (isset($_GET['inser'])) { 
  $colname_insertion = (get_magic_quotes_gpc()) ? $_GET['inser'] : addslashes($_GET['inser']); 
} 
mysql_select_db($database_kainbuye, $kainbuye);
$query_insertion = "SELECT t5.id_course, 
                  		t5.nom_course,
						t5.date,
						t6.ID_classement,
						t6.acrho_course_id_course,
						t6.ref_dossard,
						t6.temps,
						t6.moyenne,
						t6.point,
						t6.place ".
				"FROM acrho_course AS t5,
				      acrho_classement AS t6 ". 
				"WHERE t5.id_course = ".$colname_insertion." ".
						"AND t6.acrho_course_id_course = t5.id_course ".
						" ";
$insertion = mysql_query($query_insertion, $kainbuye) or die(mysql_error());
$row_insertion = mysql_fetch_assoc($insertion);
$totalRows_insertion = mysql_num_rows($insertion);
?>
La partie qui a été modifiée et qui permet de passer à la page suivante mais, vous l'imaginez bien, ne me permet pas d'accéder au dit classement
if (isset($_GET['inser']) && ($_GET['inser']!='') ) { 
  $colname_insertion = (get_magic_quotes_gpc()) ? $_GET['inser'] : addslashes($_GET['inser']); 
} 
Si quelqu'un pouvez me donner une piste pour orienter mes recherches, ce serait sympatique

Merci
Sebe

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

Eléphant du PHP | 180 Messages

08 févr. 2006, 15:41

Salut !

Sans conviction mais on sait jamais !

Moi je remplacerais ça :
"WHERE t5.id_course = ".$colname_insertion." ".
                        "AND t6.acrho_course_id_course = t5.id_course ".
                        " ";
par ça :
"WHERE t5.id_course = '".$colname_insertion."' AND t6.acrho_course_id_course = t5.id_course ";
A+

Didier
Giant steps are what you take ... walking on the moon ;-)

Mammouth du PHP | 1311 Messages

08 févr. 2006, 15:44

hmm c'est quoi tout ces points :lol:
tu n'est pas obliger de concatener
$query_insertion = 'SELECT t5.id_course,
                          t5.nom_course,
                        t5.date,
                        t6.ID_classement,
                        t6.acrho_course_id_course,
                        t6.ref_dossard,
                        t6.temps,
                        t6.moyenne,
                        t6.point,
                        t6.place 
                FROM acrho_course AS t5,
                      acrho_classement AS t6 
                WHERE t5.id_course = '.$colname_insertion.'
                        AND t6.acrho_course_id_course = t5.id_course';
au lieu d'utiliser adslaches tu peut utiliser mysql_real_escape_string
http://fr2.php.net/manual/fr/function.m ... string.php

Mammouth du PHP | 545 Messages

08 févr. 2006, 16:02

didgar,
Non, cela n'apporte rien de nouveau.


jeff,
C'est quelque chose que Cyrano m'avait demandé de faire lors d'un problème que j'avais eu avec un script ... je trouve cela plus beau, donc je continus!


Merci à vous deux pour essayer de me venir en aide
Sebe

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

Mammouth du PHP | 545 Messages

08 févr. 2006, 16:08

au lieu d'utiliser adslaches tu peut utiliser mysql_real_escape_string
http://fr2.php.net/manual/fr/function.m ... string.php
Je ne l'avais pas vu ... je regardes cela tout à l'heure!

Merci
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

09 févr. 2006, 01:07

Petit Rappel:
affichage de la requete générée pour verifier si elle est complète ou s'il y a des erreurs apparentes. :wink:

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

DJe
Invité n'ayant pas de compte PHPfrance

09 févr. 2006, 10:19

Est-ce qu'on ne s'égare pas?
Il me semblait que sebe demandait le passage d'une variable d'une page à une autre...
J'ai vaguement parcouru la thread, je ne suis pas très au courant de sont problème.
En tout cas, concernant le passage de paramètres d'une page à l'autre j'utiliserai une session, et effectivement pour inclure une source (user) dans un SQL, vaut toujours mieux vérifier les caractères spéciaux...

Et en parlant de SQL as tu essayés ça?
PHP:
"WHERE t5.id_course = '".$colname_insertion."' AND t6.acrho_course_id_course = '".$colname_insertion."'";


Bàv,

DJe

Mammouth du PHP | 545 Messages

09 févr. 2006, 11:23

Petit Rappel:
affichage de la requete générée pour verifier si elle est complète ou s'il y a des erreurs apparentes. :wink:
Salut et merci pour vos réponses car je commencais un peu à sécher,
A la page 1 [classement_edition.php], j'ai ajouté 2 lignes à ma requête:
<?php require_once('../Connections/kainbuye.php');
$colname_classement = "-1";
if (isset($_GET['class'])) {
  $colname_classement = (get_magic_quotes_gpc()) ? $_GET['class'] : addslashes($_GET['class']);
}
mysql_select_db($database_kainbuye, $kainbuye);
$query_classement = "SELECT t5.id_course, 
                  		t5.nom_course,
						t5.date,
						t5.lieu,
						t5.kilometrage,
						t5.nbre_part,
						t6.ID_classement,
						t6.acrho_course_id_course,
						t6.ref_dossard,
						t6.temps,
						t6.moyenne,
						t6.point,
						t6.place ".
				"FROM acrho_course AS t5,
				      acrho_classement AS t6 ". 
				"WHERE t5.id_course = ".$colname_classement." ".
						"AND t6.acrho_course_id_course = t5.id_course ".
						" ".
				"ORDER BY t6.place ASC";
				echo $query_classement; // <----- ICI 
				echo $colname_classement; // <----- ICI
$classement = mysql_query($query_classement, $kainbuye) or die(mysql_error());
$row_classement = mysql_fetch_assoc($classement);
$totalRows_classement = mysql_num_rows($classement);
?>
Et j'obtiens ce message:
SELECT t5.id_course, t5.nom_course, t5.date, t5.lieu, t5.kilometrage, t5.nbre_part, t6.ID_classement, t6.acrho_course_id_course, t6.ref_dossard, t6.temps, t6.moyenne, t6.point, t6.place FROM acrho_course AS t5, acrho_classement AS t6 WHERE t5.id_course = 2 AND t6.acrho_course_id_course = t5.id_course ORDER BY t6.place ASC2
A ma page 2 [classement_insertion.php]:
<?php require_once('../Connections/kainbuye.php');
$colname_insertion = "-1";
if (isset($_GET['inser']) && ($_GET['inser']!='') ) { 
  $colname_insertion = (get_magic_quotes_gpc()) ? $_GET['inser'] : addslashes($_GET['inser']); 
} 
mysql_select_db($database_kainbuye, $kainbuye);
$query_insertion = "SELECT t5.id_course, 
                  		t5.nom_course,
						t5.date,
						t6.ID_classement,
						t6.acrho_course_id_course,
						t6.ref_dossard,
						t6.temps,
						t6.moyenne,
						t6.point,
						t6.place ".
				"FROM acrho_course AS t5,
				      acrho_classement AS t6 ". 
				"WHERE t5.id_course = ".$colname_insertion." ".
						"AND t6.acrho_course_id_course = t5.id_course ".
						" ";
				echo $query_insertion; // <----- ICI 
				echo $colname_insertion; // <----- ICI
$insertion = mysql_query($query_insertion, $kainbuye) or die(mysql_error());
$row_insertion = mysql_fetch_assoc($insertion);
$totalRows_insertion = mysql_num_rows($insertion);
?>
Et j'ai ce message:
SELECT t5.id_course, t5.nom_course, t5.date, t6.ID_classement, t6.acrho_course_id_course, t6.ref_dossard, t6.temps, t6.moyenne, t6.point, t6.place FROM acrho_course AS t5, acrho_classement AS t6 WHERE t5.id_course = -1 AND t6.acrho_course_id_course = t5.id_course -1
Les requêtes étant sensiblement les mêmes, je devrais avoir la même chose et pourtant ... il y a un problème de passage de variable!

Merci
Sebe

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

Mammouth du PHP | 545 Messages

09 févr. 2006, 11:27

Et en parlant de SQL as tu essayés ça?
PHP:
"WHERE t5.id_course = '".$colname_insertion."' AND t6.acrho_course_id_course = '".$colname_insertion."'";


Bàv,

DJe
Non, je n'avais pas essayé mais en remplaçant ma ligne par ce que tu me proposes, j'ai cet 'echo' là:
SELECT t5.id_course, t5.nom_course, t5.date, t6.ID_classement, t6.acrho_course_id_course, t6.ref_dossard, t6.temps, t6.moyenne, t6.point, t6.place FROM acrho_course AS t5, acrho_classement AS t6 WHERE t5.id_course = '-1' AND t6.acrho_course_id_course = '-1'-1
Merci
Sebe

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

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2006, 12:31

sur ta page 1 tu as :
if (isset($_GET['class'])) 
et sur ta page 2 :
if (isset($_GET['inser']) && ($_GET['inser']!='') ) {
la difference est pas dans la requete ...

Mammouth du PHP | 545 Messages

09 févr. 2006, 12:52

sur ta page 1 tu as :
if (isset($_GET['class'])) 
Sur la page 0 et pour passer sur la page 1, j'ai utilisé cette manière
<a href="classement_edition.php?class=<?php echo $row_class['id_course']; ?>"><?php echo $row_class['nom_course']; ?></a>
et sur ta page 2 :
if (isset($_GET['inser']) && ($_GET['inser']!='') ) {
la difference est pas dans la requete ...
Sur la page 1 pour passer à la page 2, j'ai utilisé cette manière
<a href="classement_insertion.php?inser=<?php echo $row_classement['t5.id_course']; ?>">Ajouter une entr&eacute;e au tableau </a>
Lorsque l'on s'est rendu compte que la valeur était nul (ce qu'elle normalement pas être), on y a ajouté ceci
&& ($_GET['inser']!='') ) {
C'est pour cette raison que je suis persuadé que l'erreur vient du pasage de la variable mais je ne trouve pas ce qui se passe!
Merci
Sebe

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

PhilippeP
Invité n'ayant pas de compte PHPfrance

10 févr. 2006, 17:42

Heu c'etait moi l'invité ...

il est clair que sur ta page deux , $colname_insertion est tjrs a -1 donc ton if n'est jamais réalisé ....
Rajoute un
echo 'getinser:'.$_GET['inser'].'<br>';
pour voir la valeur qu'il prend ...

Mammouth du PHP | 545 Messages

10 févr. 2006, 17:53

Heu c'etait moi l'invité ...

il est clair que sur ta page deux , $colname_insertion est tjrs a -1 donc ton if n'est jamais réalisé ....
Rajoute un
echo 'getinser:'.$_GET['inser'].'<br>';
pour voir la valeur qu'il prend ...
Salut et merci

Voici l'echo de la requête
SELECT t5.id_course, t5.nom_course, t5.date, t6.ID_classement, t6.acrho_course_id_course, t6.ref_dossard, t6.temps, t6.moyenne, t6.point, t6.place FROM acrho_course AS t5, acrho_classement AS t6 WHERE t5.id_course = '-1' AND t6.acrho_course_id_course = '-1'-1getinser:
Un petit info venant de ma planéte ... je n'ai pas abandonné (oui, on ne m'entend plus trop parler) mais j'explore d'autres pistes me permettant d'y voir plus clair dans mon script (sa mise en page, ...!)
Et 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!