8791 sujets

Développement web côté serveur, CMS

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:

<?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...
Modifié par FranZz (24 Aug 2011 - 14:49)
EN fait avec le GET, le titre sera transmis sur l'autre page, mais ce que je cherche, c'est que ce titre serve de point de repère ( a défaut de l'ID ) pour aller, par comparaison, retrouver dans une autre table l'article qui lui correspond... )... Sorry je ne suis pas très clair
Autant passer l'ID dans l'URL ? Comme tout le monde fait en fait ...

Et récupérer sur la page avec $_GET['id'] et faire ta requête avec. Ou je ne comprends pas ?
Je pense que tu cherches de l'url-rewriting sans connaître le tout, en fait.

Le titre (comme toute donnée autre qu'une clef primaire) ne peut en aucun cas être une référence pour retrouver des données. Si ton objectif est d'obtenir une url "friendly" contenant le titre (par exemple), c'est donc bien vers l'url-rewriting qu'il te faut te tourner.
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. upload/14508-visu.gif
Salut, pour faire ce que tu veux, passes par de l'AJAX pour éviter d'avoir à recharger la totalité de la page à chaque clic. Voici une piste pour ta solution:

Soit main.php ta page principale, qui contient la div "titre" (le 1 de ta figure), et une autre "article" (2).

- Module A: avec la table numéro: tu laisses les traitements que tu as fait. Il faut juste ajouter un appel à la fonction javascript RecupererInfos(id) [cf explications] dans tes titres (Titre01,Titre02), lors du clic sur ceux-ci.

- Module B: c'est dans ce module qu'il faut faire de l'AJAX, et tu vas travailler avec la table article.

Partie PHP du module B:
Soit la page recup.php contenant la fonctionString getInfos(int $id);
Lancer la requête
"SELECT * FROM articles WHERE id='".$id."'"

Récupérer les informations, et les mettre en forme, telles que tu veux les voir affichées sur ta page.Une fois cette fonction créée, appelle la dans cette même page avec
echo getInfos($_GET['id']);

Partie JS du module B: faire une fonction RecupererInfos(id) qui va récupérer les informations du titre cliqué. (id est l'identifiant de ce titre)
- Le JS doit appeler la page recup.php , intercepter son retour (le code HTML en fait).
- Modifier le code HTML de ta div article avec ce qu'a généré recup.php

Je te conseille JQuery pour faire ça, c'est très simple d'accès Smiley biggrin