PHP: variable vide ? ? ?

Résolu/Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 23 déc. 2010 à 00:04
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 23 déc. 2010 à 14:02
Bonjour,
Je m'arrache les cheveux avec un code php et dont je n'arrive pas à transmettre la variable (enfin, c'est ce que je pense). Le site est visible ici: http://editionsgracianne.free.fr/presse/Liste_Agenda.php
Voici ce qu'il y a dans l'url: code>http://editionsgracianne.free.fr/presse/Fiche_Agenda.php?page=&id=</code>
En plus je voudrais ajouter la source et la date, en plus du lien ce qui fait trois colonnes mais impossible.
Une partie du code de la page Liste_Agenda:
<?php  
$id = $_GET['ID']; // on récupère la requete par la variable $_GET

	// appel au fichier fonctions_Agenda.php séparé pour les vérifs des limites (= à 20/page) et Nb de pages
require 'Fonctions_Agenda.php';
// require 'Fonction_Change_Date.php'; // on va modifier le format de la date en français pour l'affichage

	// initialisation des variables 
$nombre = 20;  // on va afficher 20 résultats par page.

	// si la limite a été passée par un lien, on la prend en compte. 
$limite = (isset($_POST["limite"])) ? $_POST["limite"] : 0;

	// connection à la DB
$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

	// requête SQL qui compte le nombre total d'enregistrements dans la table.
$select = 'SELECT count(*) FROM agenda';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

	// on vérifie la validité de notre variable $limite;
if ($limite < 0) $limite = 0;
if ($limite > $total) $limite = $total;

	// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
$req = 'SELECT Lien, Source, Date FROM agenda ORDER by ID DESC limit '.$limite.','.$nombre.''; // on affiche les événements dans l'ordre décroissant
$result = mysql_query($req)  or die ('Erreur : '.mysql_error() );

if ($total) 
{	
	// on affiche un  tableau avec la liste des événements
	echo "<table width='100%' bgcolor='#FFFFFF' cellspacing='0' cellpadding='0' align='center'\n";

	// lecture et affichage des résultats  
    while($row = mysql_fetch_array($result)) 
	{
		echo "<tr>";
		echo "<td bgcolor='#FFFFFF' text-align='left'>"; 
	// on construit le lien vers la page Fiche_Agenda.php en lui passant en paramètre : la page et l'ID
		printf("<a href=\"Fiche_Agenda.php?page=%s&id=%s\">%s</a>",'',$row['ID'],$row['Lien'],$row['Source'],$row['Date']); // on affiche le lien vers la page cible
		echo "</tr>";
	}   
	echo "</table>";
et le code de la page Fiche_Agenda qui détaille le contenu:
<?php
// On recupere la variable "id" correspondant à l'événement choisi
//ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET 
$id = $_GET['ID']; // on récupère la requete par la variable $_GET

// on prends les infos de connexion sur le fichier Fonctions_Agenda.php
require 'Fonctions_Agenda.php';  

// connection à la DB
$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

// requête SQL qui affiche les infos de la fiche correspondante au lien cliqué 
$select = "SELECT Titre, Stitre1, Stitre, Info FROM agenda WHERE ID='$id'"; // On selectionne seulement la ligne qui correspond à l'événement choisi 
$query = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_array($query);  // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD

// on affiche  la fiche dans un tableau généré, dans le div id="global" comme le reste des pages. 
	echo "<table width='100%' align='center' border='0' cellspacing='0' cellpadding='6'>";   // on affiche un tableau
	echo "<tr>\n";
	echo "<td><h1>" .$row["Titre"]. "</h1></td>\n"; // (A noter qu'écrit ainsi, le titre ne s'affiche pas bien qu'étant formaté en h1)      // affiche la variable Titre
	echo "</tr>\n";
	echo '<tr><td><i><center>$Stitre1</center></i></td></tr>'; // (et ici on voit la variable mais pas son contenu)    // affiche la variable Stitre1
	echo '<tr><td><i><center>$Stitre</center></i></td></tr>';      // affiche la variable Stitre
	echo '<tr><td><p>$Info</p></td></tr>';                         // affiche la variable Info
	echo '</table>';                                               // on ferme le tableau
// on n'a pas besoin de \n après la table à cause de la balise <hr> qui suit.                                            
mysql_close();
?>
Vous ne pouvez pas vous imaginer le nombre des tests que j'ai effectués mais en vain et là, je n'en peux plus (malgré les lectures et aides diverses un peu partout).
Je vais craaaaaaaaaaquer !
Un aide me serait grandement utile, les vacances sont déjà foutues pour moi. Merci beaucoup d'avance et joyeuses fêtes quand même !



A voir également:

2 réponses

desperadosse Messages postés 201 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 26 avril 2011 7
23 déc. 2010 à 00:41
J'ai peut être quelque chose :
Essaye de changer cette ligne:

printf("<a href=\"Fiche_Agenda.php?page=%s&id=%s\">%s</a>",'',$row['ID'],$row['Lien'],$row['Source'],$row['Date']);


De cette façon:

echo "<a href='Fiche_Agenda.php?id=$row['ID']"/>$row['Lien']</a>";


Je ne comprend pas vraiment ton code, mais je vais faire mon possible pour t'aider. Je suis le sujet.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 518
23 déc. 2010 à 14:02
Salut desperadosse et merci beaucoup pour avoir regardé le message,
Ton code a une erreur de syntaxe (je le vois à la coloration des lignes) alors j'ai ajouté ' avant le /> (la parenthèse n'y est pas, c'est seulement pour que tu repère l'').
Ça me retourne ceci (avec ton code ou la modif) :
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/171/sda/4/e/editionsgracianne/presse/Liste_Agenda.php on line 74


De plus, je ne suis JAMAIS arrivé a afficher 3 champs dans cette liste (Lien, Source et Date). Tu ne peux pas imaginer le nombre incalculable d'essais que j'ai fait !
En tous cas merci d'avance pour ton aide !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0