Page liste - details en PHP

trenkwill Messages postés 5 Statut Membre -  
 trenkwill -
Bonjour,
je travail et apprend à faire un site en PHP à l'aide de Dreamweaver.

J'ai sur ma page d'accueil (index.php) une liste de définitions avec le titre (de la définition) et sa description en dessous (il y a une dizaine de mots). J'ai créer, à l'aide de dreamweaver, un ensemble Master-Detail (liste-detail). Quand on clique sur le titre de la définition on est envoyé vers la page detail.php qui affiche donc la définition seul (le titre et la description).

J'aimerai pouvoir mettre dans cette page (detail.php) TOUTES les descriptions qui ont le même titre. Et je ne comprend pas comment faire.

Pour exemple dans l'index.php :

Titre : Lorem
Description : Ipsum Doler blalblalala

Quand on clique dessus on est envoyé vers detail.php

Titre : Lorem
Description : Ipsum Doler blalblalala

Maintenant j'aimerai que detail.php me retrouve toutes les descriptions de Lorem

Titre : Lorem
Description : Ipsum Doler blalblalala
Description : Uneautredefinition bliblbibibibib

J'espère avoir été assez clair. Merci d'Avance pour vos réponse :)

Trenkwill
A voir également:

6 réponses

trenkwill
 
Merci !!!

Ca y est j'ai reussi !!

Trenkwill
1
trenkwill Messages postés 5 Statut Membre
 
Personne ? :(
0
trenkwill Messages postés 5 Statut Membre
 
Je n'ai pas été assez clair ? Personne n'as compris ?
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Bonjour,

ta page detail.php elle est alimentée comment ? depuis une base de donnée ?

comment fais tu la correspondance entre le titre et la définition correspondante ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
trenkwill Messages postés 5 Statut Membre
 
Salut :)

la page detail.php est alimenté grâce à un jeux d'enregistrement qui passe par l'URL (je ne sais pas si ce sont les termes correctes, mais bon....)

Pour te donner une meilleurs vision, voici le code sur l'index qui link avec la définition sur detail.php :

<h2><a href="detail.php?titre=<?php echo $row_definition_rs['titre']; ?>">
	  				<?php echo $row_definition_rs['titre']; ?>
      				</a></h2>


Puis sur la page detail.php :


<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO `user` (ID, pseudo, email, password) VALUES (%s, %s, %s, %s)",
                       GetSQLValueString($_POST['ID'], "int"),
                       GetSQLValueString($_POST['pseudo'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['password'], "text"));

  mysql_select_db($database_dico_connection, $dico_connection);
  $Result1 = mysql_query($insertSQL, $dico_connection) or die(mysql_error());

  $insertGoTo = "user/addword.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$currentPage = $_SERVER["PHP_SELF"];

mysql_select_db($database_dico_connection, $dico_connection);
$query_definition_rs = "SELECT * FROM definition";
$definition_rs = mysql_query($query_definition_rs, $dico_connection) or die(mysql_error());
$row_definition_rs = mysql_fetch_assoc($definition_rs);
$totalRows_definition_rs = mysql_num_rows($definition_rs);

mysql_select_db($database_dico_connection, $dico_connection);
$query_exemple_rs = "SELECT * FROM exemple";
$exemple_rs = mysql_query($query_exemple_rs, $dico_connection) or die(mysql_error());
$row_exemple_rs = mysql_fetch_assoc($exemple_rs);
$totalRows_exemple_rs = mysql_num_rows($exemple_rs);

mysql_select_db($database_dico_connection, $dico_connection);
$query_user_rs = "SELECT * FROM `user`";
$user_rs = mysql_query($query_user_rs, $dico_connection) or die(mysql_error());
$row_user_rs = mysql_fetch_assoc($user_rs);
$totalRows_user_rs = mysql_num_rows($user_rs);

$maxRows_detail_rs = 10;
$pageNum_detail_rs = 0;
if (isset($_GET['pageNum_detail_rs'])) {
  $pageNum_detail_rs = $_GET['pageNum_detail_rs'];
}
$startRow_detail_rs = $pageNum_detail_rs * $maxRows_detail_rs;

$colname_detail_rs = "-1";
if (isset($_GET['titre'])) {
  $colname_detail_rs = $_GET['titre'];
}
mysql_select_db($database_dico_connection, $dico_connection);
$query_detail_rs = sprintf("SELECT titre, definition FROM definition WHERE titre = %s ORDER BY titre ASC", GetSQLValueString($colname_detail_rs, "text"));
$query_limit_detail_rs = sprintf("%s LIMIT %d, %d", $query_detail_rs, $startRow_detail_rs, $maxRows_detail_rs);
$detail_rs = mysql_query($query_limit_detail_rs, $dico_connection) or die(mysql_error());
$row_detail_rs = mysql_fetch_assoc($detail_rs);

if (isset($_GET['totalRows_detail_rs'])) {
  $totalRows_detail_rs = $_GET['totalRows_detail_rs'];
} else {
  $all_detail_rs = mysql_query($query_detail_rs);
  $totalRows_detail_rs = mysql_num_rows($all_detail_rs);
}
$totalPages_detail_rs = ceil($totalRows_detail_rs/$maxRows_detail_rs)-1;

$queryString_definition_rs = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_definition_rs") == false && 
        stristr($param, "totalRows_definition_rs") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_definition_rs = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_definition_rs = sprintf("&totalRows_definition_rs=%d%s", $totalRows_definition_rs, $queryString_definition_rs);
?>


Puis dans le body :

<h2><?php echo $row_detail_rs['titre']; ?></h2>
                             <p class="soumis">Ajouté(e) par </p>
                           </div>
                           <div class="text_definition">
                             <p><?php echo $row_detail_rs['definition']; ?></p>


(j'espère ne pas m'etre trompé dans le code a te fournir)

Par contre, je ne comprend pas quand tu me parle de la "corespondance" entre titre et definition ? tu parle de la clé primaire ID ?

En tout cas...
Merci encore :D

Trenkwill
0
trenkwill Messages postés 5 Statut Membre
 
Me serais-je tromper de morceau de code ? :(

Je sais que Dreamweaver ne fais pas un trop bon code (je me souviens de l'époque ou j'apprenais l'HTML et le code de merde qu'il me chiais, c'était horrible)

mais pour la plupart des choses ça marche ! ( et puis moi ça me permet d'apprendre et d'analyser un peu ce que le soft fait pour moi)

J'attend avec impatience vos réponses.

Trenkwill
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Honnêtement je ne comprend pas trop ce que t'a crée Dreamweaver

Déja tu as au moins trois ou 4 fois mysql_select_db(... avec la même base

laisse en un seulement

mets par contre à la fin du script mysql_close();

et je ne vois pas à quel endroit est affiché le résultat de la requette des détails par rapport au titre passé par l'URL

de toute façon tu n'en aura qu'un seul puisque:
ligne95 tu as:

$row_detail_rs = mysql_fetch_assoc($detail_rs);


cette ligne ne te sort qu'un ligne de la réponse alors même si plusieurs correspondent au titre il y en aura tjs qu'une

il faut faire une boucle while

while($row_detail_rs = mysql_fetch_assoc($detail_rs))){
 //et la on affiche chaque ligne de résultat
echo $row_detail_rs['nom_du_champ_detail'];



}
0