passage paramètre dans URL

Eléphant du PHP | 71 Messages

30 janv. 2006, 15:13

SAlut !

J'ai un petit problème. Voilà j'ai créé deux base de données, une catégories et l'autre lien. Dans chaqu'une d'elle il y a un champ nommé id_categorie. J'ai cré une page index qui m'affiche mes catégories. De là j'ai créé un lien qui permet lors d'un clic d'afficher les lien concernant la catégorie chosie. Par exemple si categorie id = 1 on affiche les liens dont ils ont 1 dans le champ id_categorie.
Mais le problème c'est lorsque j'effectu le script il m'affiche rien dans la page afficher. Pas d"erreur et ni les champs renseignés.
J'ai l'impressions que c'est mon passage de paramètre en URL, mais il me semble que c'est bon ce que j'ai codé si une personne pouvait m'aider.

Voici les deux page :

index (affichagfe des catégories) :
<?php
session_start();
include ("../fichier_configuration/fonction.php");
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php 
// on inclus les valeurs de configurations
include("conf/config.inc");

// on se connecte à la base de données 
$base = mysql_connect ($mysqlhost,$name,$password); 
mysql_select_db ($bdd,$base); 
?> 
<html> 
<head> 
<title>Favories</title> 
<LINK id="style" rel="stylesheet" type="text/css" href="" > 
<script> 
         //Récupèrer la résolution de l'écran 
   var largeur = screen.width; 
   var hauteur = screen.height; 

         //Résolution 1024*768 
   if (largeur == 1280 && hauteur == 1024) document.all["style"].href = "../fichier_stylecss/style.css"; 
          
         //Résolution 800*600 
   else if (largeur == 1024 && hauteur == 768) document.all["style"].href = "../fichier_stylecss/style1.css"; 

         //Résolution inconnue 
   else document.all["style"].href = "http://localhost/test/styles_dynamiques/style_default.css"; 

</script>
<script language="javascript" src="../fichier_javascript/fonction.js" type="text/javascript"></script>
</head> 
<body> 
<?php 
include ("../fichier_configuration/harder_rep.php");
// structure de la mise en page 
?> 
<center>
	<div class="blocTxt">
		<center><b>Gestion des favories</b></center>
	</div>
</center> 
<br> 
<br>
<br>

<?php
/* On inutialise le début de la requête SQL */ 
$sql = 'SELECT id_categorie, categorie_nom, categorie_description, categorie_date, id_membre FROM gestion_favorie_categorie'; 
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
// Récupération du nombre d'enregistrement dans la base
$number = MYSQL_NUM_ROWS($req);
// Affichage du nombre d'enregistrement
if($number==1){
	$num = "$number enregistrement dans le répertoire";
}
else{
	$num = "$number enregistrements dans le répertoire";

}
//on récupère le résultat sous la forme d'un tableau en scanan tous les tuples 
while ($data = mysql_fetch_array($req)) 
{ 
    // on effectu l'affichage des résultats 
?>
<table border = "1">
	<tr>
		<td><?php echo($data['categorie_nom']); ?></td>
		<td><?php echo($data['categorie_description']); ?></td>
		<td><a href="affiche_liens.php?id_categorie=<?php echo($data['id_categorie']); ?>">affiche</a></td>
	</tr>
</table>
<?php 
}
// on libère l'espace mémoire alloué pour cette intérrogation de base 
mysql_free_result ($req); 
mysql_close (); 
?>	
<?php
include ("../fichier_configuration/footer_rep.php");
?>
Page affiche(lors du clik sur la catégorie on affiche les liens correspondant) :
<?php
session_start();
include ("../fichier_configuration/fonction.php");
if (!isset($_SESSION['membre_login'])) {
    header ('Location: /logiciel/index.php');
    exit();
}
?>
<?php 
// on inclus les valeurs de configurations
include("conf/config.inc");
$id_categorie = isset($_GET['id_categorie']) ? $_GET['id_categorie'] : null; 
// on se connecte à la base de données 
$base = mysql_connect ($mysqlhost,$name,$password); 
mysql_select_db ($bdd,$base); 
?> 
<html> 
<head> 
<title>Favories</title> 
<LINK id="style" rel="stylesheet" type="text/css" href="" > 
<script> 
         //Récupèrer la résolution de l'écran 
   var largeur = screen.width; 
   var hauteur = screen.height; 

         //Résolution 1024*768 
   if (largeur == 1280 && hauteur == 1024) document.all["style"].href = "../fichier_stylecss/style.css"; 
          
         //Résolution 800*600 
   else if (largeur == 1024 && hauteur == 768) document.all["style"].href = "../fichier_stylecss/style1.css"; 

         //Résolution inconnue 
   else document.all["style"].href = "http://localhost/test/styles_dynamiques/style_default.css"; 

</script>
<script language="javascript" src="../fichier_javascript/fonction.js" type="text/javascript"></script>
</head> 
<body> 
<?php 
include ("../fichier_configuration/harder_rep.php");
// structure de la mise en page 
?> 
<center>
	<div class="blocTxt">
		<center><b>Gestion des favories</b></center>
	</div>
</center> 
<br> 
<br>
<br>

<?php

/* On inutialise le début de la requête SQL */ 
$sql = 'SELECT * FROM gestion_favorie_liens WHERE id_categorie = "$id_categorie"'; 
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
// Récupération du nombre d'enregistrement dans la base
$number = MYSQL_NUM_ROWS($req);
// Affichage du nombre d'enregistrement
if($number==1){
	$num = "$number enregistrement dans le répertoire";
}
else{
	$num = "$number enregistrements dans le répertoire";

}
//on récupère le résultat sous la forme d'un tableau en scanan tous les tuples 
while ($data = mysql_fetch_array($req)) 
{ 
    // on effectu l'affichage des résultats 
?>
<table border = "1">
	<tr>
		<td><?php echo($data['lien_titre']); ?></td>
		<td><?php echo($data['lien_liens']); ?></td>
	</tr>
</table>	
<?php 
}
// on libère l'espace mémoire alloué pour cette intérrogation de base 
mysql_free_result ($req); 
mysql_close (); 
?>	
<?php
include ("../fichier_configuration/footer_rep.php");
?>
merci

Eléphant du PHP | 71 Messages

30 janv. 2006, 15:58

tu devrais d'abord afficher tes variablespour voir ce que tu récupères.

fais
echo "idcat".$id_categorie;

et vois si tu as deja bien récupérer ta variable.
Ensuite tu peux faire la meme chose avec la requete :
echo "sql ".$sql;

cela t'aide ainsi a déboguer ton code...
ceci dit ta requet'e je l'ecrirais ainsi :

$sql = 'SELECT * FROM gestion_favorie_liens WHERE id_categorie ='.$id_categorie;

Tu n'as pas besoin de mettre ton $id_categorie entre "" vu que c'est un nombre!!!!

Peut ete que ta requete est bonne mais j'ai pas l'impression, je suis pas une bete du php non plus
:)

Lorsque tu as un problème, essaie tjrs d'afficher tes variable avec echo afin de voir ce qu'il y'a dedans....

Eléphant du PHP | 71 Messages

30 janv. 2006, 16:06

Merci oui c'était jusqte un problème de syntaxe au niveau de la requête. Cela fonctionne maintenant.