Faire passer une variable d'une page à une autre

FranZz

Membre actif
19 Juillet 2007
469
13
Namur
Salut, je dois développer un site, qui est en fait la version WEB d'une revue papier ( 150 numéros ).

Sur une page, j'ai les sommaires des numéros, avec l'affichage de la couverture qui va avec ( visu )

Donc, ma table c'est 'numero' et les champs sont 'id' 'image' 'sommaire'

J'affiche cela de la manière suivante:

Bloc de code:
<?php	mysql_connect("xxxxxx", "xxxxxxxx", "xxxxxx"); // Connexion  MySQL
		mysql_select_db("xxxxxxxxx"); // Slection de la bdd
        $reponse = mysql_query("SELECT * FROM numero") or die ("Requete impossible" ); 
	    while ($donnees = mysql_fetch_array($reponse) ){?>
    
    Sommaire du numéro <?php echo $donnees['image']; ?> | <?php echo $donnees['nom']; ?><br />
    <img src="../img/couvertures/<?php echo $donnees['image']; ?>_fr.jpg" width="177" height="250"/><br />
    
			
			
			<?
		$titre = explode('&', $donnees['sommaire']);
		foreach($titre as $key => $value) {?>
		<?php echo '<a href="revue.php?chapitre='.$titre[$key].'">'.$titre[$key].'</a><br />'; ?>
		
		<?
			
		}?><hr><?
	} 
?>

Et ça fonctionne, pas de problème.

En fait, j'aimerais faire le lien vers une autre table, qui s'appelle 'articles', et qui comporte les champs suivants:

'id' 'numero' 'titre' 'chapeau' 'body' 'signature'

Je souhaiterais, lorsque je clique sur un des titres du sommaire, faire passer dans une autre page l'info pour aller chercher le titre correspondant dans l'autre table et ainsi m'afficher l'entièreté de l'article... une piste?
 
Merci pour réponse! Ok, je vais préciser un peu!

Donc, j'affiche une page, qui est le sommaire des revues, avec chaque fois la couverture associée. Pour faire cela, j'ai créé une table numero.

Une fois que l'on clique sur sur un titre dus sommaire, il faudrait que les infos soient extraites d'une autre table, qui est la table articles.

En gros, les titres se trouvant dans ma table numero et dans ma table articles sont similaires, mais je ne peux pas tout insérer dans la même table pour différentes raisons.
 
Dernière édition:
Si j'ai bien compris ton histoire je ferais comme ça :

Dans la premier page ou tu as les titre ou il faut cliquer tu met sur chaque titre un lien de type page.php?titre=titre1.

Et dans la seconde page, tu utilise la methode GET pour récuperer le titre contenue dans le lien ci dessus et tu va chercher dans ta seconde table les info concernat ce titre la avec un requete de type

SELECT * FROM table2 WHERE Titre = le titre qui est dans le lien.

Je ne sais pas si je suis bien clair mais j'ai du mal à expliquer comme ça.

En esperant t'avoir aidé.
 
Ok Hugo, merci pour le post!

En gros, dans ma première page le lien serait:

<a href="article.php?id=<?php echo $donnees['titre']; ?>"><?php echo $donnees['titre']; ?></a>

Et dans la page de réception et d'affichage des données:

<?php
mysql_connect("xxx", "xxxxxxxx", "xxxxxxxx"); // Connexion MySQL
mysql_select_db("xxxx"); // Selection de la bdd
$reponse = mysql_query ("SELECT * FROM table2 WHERE Titre = $_GET['titre']");
?>

<?php echo $reponse['titre']; ?>
<?php echo $reponse['image']; ?>
<?php echo $reponse['chapeau']; ?>
<?php echo $reponse['signature']; ?>
 
Je teste avec ceci, sur ma page d'affichage de départ:

<?php echo '<a href="artikel.php?titre='.$titre[$key].'">'.$titre[$key].'</a><br />'; ?>

Et pour la page d'arrivée:

<?php mysql_connect("xxxxxx", "xxxx", "xxxxx"); // Connexion MySQL
mysql_select_db("xxxxxxxx"); // Slection de la bdd
$reponse = mysql_query("SELECT * FROM news WHERE titre='$titre'") or die ("Requete impossible" );
$donne = $_GET['titre'];
?>

<?php echo $donne['titre']; ?>
 
NOn... merci tout de même, je continue à chercher...
 
C'est quoi le soucis ?

---------- Nouveau message ajouté à 10h21 ---------- Le message précédent a été envoyé à 10h18 ----------

<?php echo '<a href="artikel.php?titre='.$titre[$key].'">'.$titre[$key].'</a><br />'; ?>

Et pour la page d'arrivée:

<?php mysql_connect("xxxxxx", "xxxx", "xxxxx"); // Connexion MySQL
mysql_select_db("xxxxxxxx"); // Slection de la bdd
$reponse = mysql_query("SELECT * FROM news WHERE titre='$titre'") or die ("Requete impossible" );
$donne = $_GET['titre'];
?>

<?php echo $donne['titre']; ?>

Dans ton url tu met $titre[$key] et dans le requête tu appel que $titre, c'est peut être ça le problème.
 
toujours passer par des ID (identifiant uniques ) et jamais par des titres pour aller chercher des infos, beaucoup moins sûr voire dangereux

imagine, si 2 titres sont identiques, qu'est-ce qu'il se passe ?
Comment gères-tu les accents ?

Que fais tu en cas d'apostrophe, qui est un caractère d'échappement pour Mysql ? d'autant que dans ta requête, tu n'as pas protégé ton GET (addslashes) donc si ton titre contient un l' par exemple, tu n'auras aucun résultat renvoyé par la base car il s'arrêtera à l'apostrophe pour la requête et te retournera une belle erreur en prime

Bref, avec l'ID, si tu autoincrémentes ta table avec un ID unique pour chaque enregistrement, tu te simplifies la vie, tu évites les erreurs et c'est plus propre
 
Dernière édition: