8791 sujets

Développement web côté serveur, CMS

Bonjour,


après avoir fini mes modules de gestion je m'attaque maintenant à une chose assez ambiguë (enfin pour moi^^)


j'affiche sous forme de tableau diverse infos provenant d'une table de BD mysql.

voici une petit image explicative
upload/30900-tab.png

en gros dans la case titre ou se trouve les nom des spectacles, il faudrait qu'on puisse cliquer sur le nom du spectacle pour accéder à sa fiche détaillée.
Vu que le nom du spectacle proviens de la BDD...
Et la je me suis posé une colle tout seul et je n'est encore jamais rencontré ce genre de cas...

est-ce que quelqu'un à une idée ?

merci d'avance
Modifié par Zombiman (19 Jul 2010 - 17:01)
Bonjour,

En théorie c'est assez simple, après ça va dépendre de comment ta base est construite.

Simplement, lorsque que tu récupères les informations présentes dans ton tableau il faut que tu stockes la clé primaire de ton titre.
Une fois que tu possèdes celle-ci il suffit simplement de créer un lien vers une autre page et de lui passer la clé (le plus simple est de passer l'id par l'url) que tu utiliseras ensuite pour effectuer une nouvelle requête sur ta bdd.

Donc pour résumer il te suffit de récupérer l'identifiant correspondant à ton titre, de le stocker et de le réutiliser.

Tu peux éventuellement envisager l'utilisation d'ajax si tu ne veux pas devoir recharger ta page à chaque clic.
Modifié par Shawn (13 Jul 2010 - 16:58)
Mais le soucis c'est que chaque champ n'a pas d'id unique.... l'id est en ato increment, et ma clef primaire et sur l'id
Comment les détails de ton spectacle sont-ils stockés ? Dans la même table que celle que tu consulte pour afficher ton tableau ou dans une table externe ?
Modérateur
En effet, il faudrait nous donner les détails sur chaque table (nom de la table, champs, types de champ, etc...).
Voici la structure de ma bdd (comprenant qu'une table pour le moment)

-- phpMyAdmin SQL Dump
-- version 3.2.0.1
--  http://www.phpmyadmin.net
 
--
-- Serveur: localhost
-- Généré le : Jeu 15 Juillet 2010 à 07:21
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `tmb`
--

-- --------------------------------------------------------

--
-- Structure de la table `prog_saison`
--

CREATE TABLE IF NOT EXISTS `prog_saison` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` datetime NOT NULL,
  `horaire` text COLLATE utf8_unicode_ci NOT NULL,
  `titre` text COLLATE utf8_unicode_ci NOT NULL,
  `compagnie` text COLLATE utf8_unicode_ci NOT NULL,
  `age` text COLLATE utf8_unicode_ci NOT NULL,
  `categorie` text COLLATE utf8_unicode_ci NOT NULL,
  `dispo` text COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=18 ;
Bonjour,

Je ne comprends pas bien, tu veux accéder à une page contenant les détails d'un spectacle précis, mais dans ta bdd tu n'as aucune information en plus que celles que tu affiches déjà.

Ces informations vont-elles venir s'ajouter à ta base ?
Si c'est le cas je te conseil de d'abord finir ta base de données avant d'attaquer le php.
Si ce n'est pas le cas et bien.. je ne comprends pas Smiley biggrin .
Oui ma base me sert juste à afficher, il y a bien-sur une partie admin ou on ajoute modifie supprime un spectacle.

et concrètement je ne vois pas comment structurer ma BDD pour pouvoir faire ce que je veux c'est la le soucis je pense.

sachant que ce ne sera pas une énorme BDD
Modifié par Zombiman (15 Jul 2010 - 10:39)
D'accord, pour ta bdd c'est simple : Tu crées une nouvelle table contenant les détails de tes spectacles et dans ta table actuelle tu remplaces le contenu du champs titre par l'identifiant de du spectacle concerné, ça sera donc une clé étrangère et tu pourras ainsi faire le lien entre les deux tables.

Ta base parait assez simple tout de même, tu devrais prendre du temps pour bien l'élaborer et bien comprendre les liens qu'il y aura entre tes différentes tables. Ça t'aidera certainement pour la suite.
Je suis obligé de rentrer en base chaque description des spectacles dans une table et y faire appel?

je pensais plutôt créer les pages web de chaque spectacle avec la description, photos... et les mettre en lien? pas possible ?


Désolé de poser des questions stupides mais je suis curieux.
Non, tu peux simplement placer en db l'url de la page statique vers laquelle tu veux pointer.
Mais il est plus courant de gérer l'ensemble de son contenu via la db.
Bien sur que c'est possible, mais c'est se compliquer la tache pour pas grand chose.

Avec ta méthode, si tu as 50 spectacles tu auras à créer 50 pages html, et le jour ou tu souhaiteras ajouter un spectacle tu devras recréer une page et mettre les liens en dur dans le code.

Si tu fais une table contenant ces informations associées à une page php qui te génère le rendu en piochant les infos, tu auras une seule page à coder et rien à faire le jour ou tu ajouteras un spectacle.

Après c'est à toi de voir ce que tu préfère mais à priori le choix est assez simple à faire. Smiley smile
C'est pas mal comme solution de tout mettre en bdd, mais la personne qui mettera a jour le site, préfère refaire les page web a la main. c'est pour ça que je demandais.

Donc ça me simplifie la tâche lol
Tu devrais peut-être voir avec la personne qui devra s'occuper du site, faire les maj en insérant directement des pages html me parait un peu archaïque.
Bonjour,


bon au final j'ai trouvé un truc assez simple à mettre en place.
j'ai récupérer tout bêtement les élément dans mon tableau et mis le tout dans deux variable.
ensuite j'affiche les variables et le tour est joué Smiley smile .

voici le code

		while ($row = mysql_fetch_array($resultat))
		{
		$Nom = $row[2]; // numero de la case du tabeau ou se trouve les nom
		$Url = $row[7]; // idem mais pour le lien 

		echo '<tr>';

		echo '<td><center>'.$row['datefr'].'&nbsp;</center></td><td><center>'.$row['horaire'].'&nbsp;</center></td><td><center><a href='.$Url.'>'.$Nom.'</a></center></td><td><center>'.$row['compagnie'].'&nbsp;</center></td><td><center>'.$row['age'].'&nbsp;ans</center></td><td><center>'.$row['categorie'].'&nbsp;</center></td><td><center>'.$row['dispo'].'&nbsp;</center></td>';
		echo '</tr>';
		}



la seule contrainte, la personne devra mettre le lien dans le formulaire lors de l'ajout d'un spectacle.

et pour des raison de maniabilité, la personne préfère créer les pages elle même, donc bon ^^.

En tout cas merci a tous pour vos infos et réponses, cela m'aide vachement à la réflexion sur certain problèmes rencontrés.

encore merci a tous Smiley murf
Modifié par Zombiman (19 Jul 2010 - 16:38)