Page 1 sur 1

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

Posté : 08 févr. 2006, 14:55
par Sebe
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

Posté : 08 févr. 2006, 15:41
par didgar
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

Posté : 08 févr. 2006, 15:44
par jeff
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

Posté : 08 févr. 2006, 16:02
par Sebe
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

Posté : 08 févr. 2006, 16:08
par Sebe
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

Posté : 09 févr. 2006, 01:07
par Truc
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:

Sessions

Posté : 09 févr. 2006, 10:19
par DJe
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

Posté : 09 févr. 2006, 11:23
par Sebe
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

Re: Sessions

Posté : 09 févr. 2006, 11:27
par Sebe
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

Posté : 09 févr. 2006, 12:31
par Invité
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 ...

Posté : 09 févr. 2006, 12:52
par Sebe
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

Posté : 10 févr. 2006, 17:42
par PhilippeP
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 ...

Posté : 10 févr. 2006, 17:53
par Sebe
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