Impossible d'afficher le contenu [php]

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 23 févr. 2007 à 20:38
Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 - 25 févr. 2007 à 23:14
Salut à tous,
Je suis en train de faire un "catalogue" de +/- 400 entrées. Je l'affiche par tranche de 10 par écran. Jusque là: OK!
Si je clique sur le lien Fiche détaillé sur la gauche de l'un d'eux, il m'affiche bien le tableau MAIS... avec le nom des champs et PAS leur contenu. J'ai tout tenté, plusieurs façons d'écrire etc... mais là je ne vois plus rien. Je craaaaaque !
En fait, je ne sais pas récupérer les variables selon l'id cliqué (echo "<p><a href='fiche_dyn.php?id=['id']'> Fiche détaillée </a><br>";).
Quelqu'un aurait-il l'amabilité de regarder ça ? Et surtout le commenter car la correction sans voir ce que je fais, ça n'a aucun interet.
Merci infiniment d'avance.
Ci-dessous, le code de la page qui doit afficher le tableau.
<?
// ==================================================
// On se connecte et on choisi la base de données
// ==================================================
mysql_pconnect("localhost","txiki","txikito") or die ("Impossible de se connecter à MySQL");
mysql_select_db("test") or die("Impossible de sélectionner la base de données");

//=====================================================================================
// requête SQL qui affiche les infos de la fiche correspondante au lien cliqué 
//=====================================================================================
$link = '$link';
$select = "select * FROM test";
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

// ===========================================
// récupération des variables a afficher
// ===========================================
$_POST = '$id';
$_POST = '$groupe';
$_POST = '$categorie';
$_POST = '$source';
$_POST = '$editeur';
$_POST = '$nom';
$_POST = 'ligne_produit';
$_POST = 'socle';
$_POST = 'reference_DSI';
$_POST = 'standard_DSI';
$_POST = 'type_licence';
$_POST = 'version_standard';
$_POST = 'compatibilite_XP';
$_POST = 'versions_exploitation';
$_POST = 'type_deploiement';
$_POST = 'type_installation';
$_POST = 'domaine';
$_POST = 'fonctionnalite';
$_POST = 'description';
$_POST = 'instructions';
$_POST = 'pre_requis';
$_POST = 'referent_metier';
$_POST = 'commentaires';

// ===================================================
// Affichage de la fiche dans un tablea&u dynamique 
// ===================================================
  echo "<table width='80%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='8' align='center'>\n";
// première ligne on affiche le titre "Fiche logicielle" dans 2 colonnes fusionnées
        echo "<tr text-align='center' padding='3px' class='blanc'>";
        echo "<td colspan='2' bgcolor='#669999'><h2> Fiche logicielle </h2></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 3 lignes.    
  echo "<tr bgcolor='#FF9900' text-align='center'>";
  echo "<td colspan='2'> N° d'enregistrement: <strong>" .$row = 'id'."</strong></td>"; // première ligne fusionnée pour le n° d'enregistrement (id)
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'groupe'."</td>"; // affiche le groupe du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row = 'categorie'."</td>"; // affiche la catégorie du logiciel 
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'source'."</td>"; // affiche la source du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row = 'editeur'."</td>"; // affiche l'éditeur du logiciel 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'nom'."</td>"; // affiche le nom du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row = 'ligne_produit'."</td>"; // affiche le nom (interne) de la ligne produit du logiciel 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'socle'."</td>"; // affiche le socle nécessaire pour son installation
  echo "<td bgcolor='#F0F0F0'>" .$row = 'reference_DSI'."</td>"; // affiche la référence DSI (cat, ref etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'standard_DSI'."</td>"; // affiche le standard de la DSI
  echo "<td bgcolor='#F0F0F0'>" .$row = 'type_licence'."</td>"; // affiche le type de licence (flottante, etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'version_standard'."</td>"; // affiche la version utilisée en standard à TM
  echo "<td bgcolor='#F0F0F0'>" .$row = 'compatibilite_XP'."</td>"; // affiche la compatibilité avec XP ou pas 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'versions_exploitation'."</td>"; // affiche le nombre de versions en exploitation
  echo "<td bgcolor='#F0F0F0'>" .$row = 'type_deploiement'."</td>"; // affiche le type de déploiement (script, manuelle etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'type_installation'."</td>"; // affiche le type d'installation (locale, réseau etc...) 
  echo "<td bgcolor='#F0F0F0'>" .$row = 'domaine'."</td>"; // affiche le domaine d'application
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row = 'fonctionnalite'."</td>"; // affiche une courte description de sa fonctionnalité 
  echo "<td bgcolor='#F0F0F0'>" .$row = 'description'."</td>"; // affiche une description plus détaillée 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row  = 'instructions'."</td>"; // affiche les instructions particulières s'il y en a
  echo "<td bgcolor='#F0F0F0'>" .$row  = 'pre-requis'."</td>"; // affiche les pré-requis nécessaires a son installation
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row  = 'referent_metier'."</td>"; // affiche le référent métier de l'application 
  echo "<td bgcolor='#F0F0F0'>" .$row  = 'commentaires'."</td>"; // affiche des commentaires s'il y en a 
  echo "</tr>\n";
  echo "</table>\n";
    // fin du tableau.
mysql_close();
?>

4 réponses

Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5
24 févr. 2007 à 15:32
je n'ai pas vraiment compris l'utilité de certaines parties de ton code mais dis moi si j'ai bon :

tu a sune page qui affiche un tablaeu contenant plusieurs produits.. tu clic sur un produit et la tu veux afficher des infos détaillés. OK

j'imagine que dans ta BDD tu as une table avec pour champs : "id", "nom".. je ne connais pas la sturcture de ta base don je l'invente..
pour ta page de liste des produits, je mettrai une requete comme celle qui suit

$requete=mysql_query("SELECT * FROM test"); /
while($infos= @mysql_fetch_array($requete))
{
echo '<a href="tapage.php?id='.$infos["id"].'">Fiche détaillée</a>';
}

apres pour ton tableau ou tu affiche les infos detaillées, je vois pas l'utilité de la partie " récupération des variables a afficher" en effet : que viennent faire les POSt dans le script?

tu recupere les infos sur le produit particulier avec
$requete=mysql_query("SELECT * FROM test WHERE id=$_GET['id']");
$infos_produit= mysql_fetch_row($requete);

donc tu te retrouve avec un tableau contenant les infos sur le produit ayant pour id celui recuperer dans le lien : tu recupere ses infos en faisant :
$infos_produit["nomduchampqui t'interesse"] : exemple $infos_produit["Prix"]


apres, tu remplace toutes tes variables du tableau (comme $row = 'id') par $infos_tableau["nomduchampquit'interesse"]


je suis sur de ne pas avoir été assez clair donc si tu veux plus d'infos ou que je te modifie ton code pour qu'il tourne, n'hesite pas a demander
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
24 févr. 2007 à 19:38
Salut Thecanardwc44
TOut d'abord un très merci pour ta réponse.
Je l'ai tellement modifié , tripatouillé que je ne sais plus où j'habite du coup. Et je m'arrache les cheveux.... grrrrrr !
Tu peux voir le comportement sur: http://txiki.free.fr (mais j'y ai ajouter des choses comme une page d'authentification pour effectuer des modifs par certaines personnes uniquement).
cette page qui affiche un premier tableau fonctionne très bien donc on n'y touche pas (même si c'est pas optimisé ?")
<?  
//==================================================================================
// Affichage du catalogue par pages de 10 produits
// includes du fichier fonctions séparé pour les vérifs des limites et Nb de pages
//==================================================================================

require 'fonctions.php';

//=========================================
// information pour la connection à le DB
//=========================================
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';

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

// si la limite a été passée par un lien, on la prend en compte. 
// Sinon, si elle a été passée par le bouton, on la prend en compte. 
// Dans tous les autres cas, elle vaut 0.

if (isset($_GET["limite"]))
    $limite = $_GET["limite"];
elseif (isset($_POST["limite"]))
    $limite = $_POST["limite"];
else
    $limite = 0;
$path_parts = pathinfo($_SERVER['PHP_SELF']);  // on cherche le nom de la page.

$page = $path_parts["basename"];

//======================
// 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(id) FROM test';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

//===================================================
// vérifier la validité de notre variable $limite;
//===================================================
$verifLimite = verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}

//=====================================================================================
// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
//=====================================================================================
$select = 'select id,nom,editeur FROM test ORDER BY nom ASC limit '.$limite.','.$nombre;
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

//=============================================    
// si on a récupéré un resultat on l'affiche.
//=============================================
if($total) {
  echo "<table width='65%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='8' align='center'>\n";
// première ligne on affiche les titres Accès et Logiciels dans 2 colonnes
        echo "<tr text-align='center' padding='3px' class='blanc'>";
        echo "<td bgcolor='#B1C3D9'><h2> Action </h2></td>";
        echo "<td bgcolor='#B1C3D9'><h2> Logiciels </h2></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 3 lignes.    
    while($row = mysql_fetch_array($result)) {
  echo "<tr>";
  echo "<td rowspan='2' bgcolor='#FF9900' text-align='center' width='20%'>"; // largeur de la première colonne (fusion de 3 lignes)
  echo "<p><a href='fiche_dyn.php?id=['id']'> Fiche détaillée </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='authentification.htm?id=['id']'> Modifier </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='fiche.php?id=['id']'> supprimer </a></p>";
  echo "</td>";
  echo "<td bgcolor='#F0F0F0'>Nom du logiciel:&nbsp;<strong>" .$row['nom']."</strong></td>"; // affiche le nom du logiciel (1ere cellule)
  echo "</td>";
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>Editeur du logiciel:&nbsp;<strong>" .$row['editeur']."</strong></td>"; // affiche l'éditeur du logiciel (la 2eme cellule)
  echo "</td>";
  echo "</tr>\n";
 }
  echo "</table>\n";
    // fin du tableau.
}
else echo "Pas d\'enregistrements dans cette table";

// on libère le résultat
mysql_free_result($result);

//==========================================================================    
// si le nombre d'enregistrement à afficher est plus grand que $nombre 
//==========================================================================
if($total > $nombre) {
    affichePages($nombre,$page,$total);  // affichage des liens vers les pages
    displayNextPreviousButtons($limite,$total,$nombre,$page);  // affichage des boutons
}
mysql_close();
?>

Ensuite, je regarde ce que tu me préconise. Mais j'aurai sans doute besoin d'un sérieux coup de main (je débute en PHP alors faut etre tolérant en pédagogue (plein de // comments...... ne seraient pas inutiles) ;-))

Merci encore.

Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5
24 févr. 2007 à 20:53
je regarde vite fais ton code au cas ou tu souhaiterai travailler ce soir, mais j'examinerai ca plus en detail demain..

deja, tu ne peux pas passer l'id dans le lien dans l'etat actuel de ton code :
  
echo "<p><a href='fiche_dyn.php?id=['id']'> Fiche détaillée </a><br>";

en effet, lors de l'interpretation, le serveur va voir echo "XXXX'fiche_dyn.php?id=[' et la, pour lui ton apostrophe est refermé et zou il passe au reste... 1ere erreur
dans la foulée
['id']
n'est pas une variable.. tu devrai remplacer par
$row['id']


donc en modifiant le code qui ne tourne pas comme il devrai, ca donne :
echo "<p><a href=\'fiche_dyn.php?id=".$row['nom']."\'> Fiche détaillée </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href=\'authentification.htm?id=".$row['nom']."\'>Modifier </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href=\'fiche.php?id=".$row['nom']."\'> supprimer </a></p>";



j'ai surement du faire des erreurs dans le placement des apostrophes mais personnelement je ne les utilise pas dans ce sens la.. enfin bref ce qui est important c'est d'inserer $row['id'] à la place du ['id'] et de bien placer les apostrophes, je taperai le truc tranquillement demain..


en esperant avoir été clair et utile..
0
Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5
25 févr. 2007 à 12:48
bonjour

chose promise..

<?  
//==================================================================================
// Affichage du catalogue par pages de 10 produits
// includes du fichier fonctions séparé pour les vérifs des limites et Nb de pages
//==================================================================================

require 'fonctions.php';

//=========================================
// information pour la connection à le DB
//=========================================
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';

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

// si la limite a été passée par un lien, on la prend en compte. 
// Sinon, si elle a été passée par le bouton, on la prend en compte. 
// Dans tous les autres cas, elle vaut 0.

if (isset($_GET["limite"]))
    $limite = $_GET["limite"];
elseif (isset($_POST["limite"]))
    $limite = $_POST["limite"];
else
    $limite = 0;
$path_parts = pathinfo($_SERVER['PHP_SELF']);  // on cherche le nom de la page.

$page = $path_parts["basename"];

//======================
// 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(id) FROM test';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

//===================================================
// vérifier la validité de notre variable $limite;
//===================================================
$verifLimite = verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}

//=====================================================================================
// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
//=====================================================================================
$select = 'select id,nom,editeur FROM test ORDER BY nom ASC limit '.$limite.','.$nombre;
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

//=============================================    
// si on a récupéré un resultat on l'affiche.
//=============================================
if($total) {
  echo "<table width='65%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='8' align='center'>\n";
// première ligne on affiche les titres Accès et Logiciels dans 2 colonnes
        echo "<tr text-align='center' padding='3px' class='blanc'>";
        echo "<td bgcolor='#B1C3D9'><h2> Action </h2></td>";
        echo "<td bgcolor='#B1C3D9'><h2> Logiciels </h2></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 3 lignes.    
    while($row = mysql_fetch_array($result)) {
  echo "<tr>";
  echo "<td rowspan='2' bgcolor='#FF9900' text-align='center' width='20%'>"; // largeur de la première colonne (fusion de 3 lignes)
  echo "<p><a href='fiche_dyn.php?id=".$row['id']."'> Fiche détaillée </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='authentification.htm?id=".$row['id']."'> Modifier </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='fiche.php?id=".$row['id']."'> supprimer </a></p>";
  echo "</td>";
  echo "<td bgcolor='#F0F0F0'>Nom du logiciel:&nbsp;<strong>" .$row['nom']."</strong></td>"; // affiche le nom du logiciel (1ere cellule)
  echo "</td>";
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>Editeur du logiciel:&nbsp;<strong>" .$row['editeur']."</strong></td>"; // affiche l'éditeur du logiciel (la 2eme cellule)
  echo "</td>";
  echo "</tr>\n";
 }
  echo "</table>\n";
    // fin du tableau.
}
else echo "Pas d\'enregistrements dans cette table";

// on libère le résultat
mysql_free_result($result);

//==========================================================================    
// si le nombre d'enregistrement à afficher est plus grand que $nombre 
//==========================================================================
if($total > $nombre) {
    affichePages($nombre,$page,$total);  // affichage des liens vers les pages
    displayNextPreviousButtons($limite,$total,$nombre,$page);  // affichage des boutons
}
mysql_close();
?>


je n'ai pas fait grand chose.. la partie qui posait probleme
  echo "<p><a href='fiche_dyn.php?id=['id']'> Fiche détaillée </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='authentification.htm?id=['id']'> Modifier </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='fiche.php?id=['id']'> supprimer </a></p>";



je l'ai remplacée par
  echo "<p><a href='fiche_dyn.php?id=".$row['id']."'> Fiche détaillée </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='authentification.htm?id=".$row['id']."'> Modifier </a><br>"; // <br> pour 1 saut moins important entre les 2 liens
  echo "<a href='fiche.php?id=".$row['id']."'> supprimer </a></p>";


Pour les commentaires : $row['id'] correspond a la colonne id de ta requete et j'ai concaténé le tout (grace au ".") pour eviter les conflits avec les apostrophes..

J'ai deux petites remarques :
ton lien "modifier" pointe sur un fichier htm.. tu ne pourra donc pas te servir de la variable (surement une faute de frappe)
deuxieme remarque : ca serai bien de rendre ton code conforme au recommandations W3C...


----------------------------- Page information détaillées ------------------
Maintenant, c'est le tableau détaillé, j'ai commenté les changements :
<?
// ==================================================
// On recupere la variable "id" correspondant au logiciel choisi
// ==================================================
$id=$_GET["id"]; // La manipulation de $id est plus simple que celle de $_POST["id"]

// ==================================================
// On se connecte et on choisi la base de données
// ==================================================
mysql_pconnect("localhost","txiki","txikito") or die ("Impossible de se connecter à MySQL");
mysql_select_db("test") or die("Impossible de sélectionner la base de données");

//=====================================================================================
// requête SQL qui affiche les infos de la fiche correspondante au lien cliqué 
//=====================================================================================
$link = '$link';
$select = "select * FROM test WHERE id='$id'"; // On selectionne seulement la ligne qui correspond au logiciel choisi 
$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_row($result);  // mysql_fetch_row genere un tableau correspondant a la ligne selectionnée de la BDD
// Les informations sont accessibles par $row["id"], $row["nom"], $row["source"]...

// ===================================================
// Affichage de la fiche dans un tablea&u dynamique 
// ===================================================
  echo "<table width='80%' bgcolor='#FFFFFF' border='1' cellspacing='0' cellpadding='8' align='center'>\n";
// première ligne on affiche le titre "Fiche logicielle" dans 2 colonnes fusionnées
        echo "<tr text-align='center' padding='3px' class='blanc'>";
        echo "<td colspan='2' bgcolor='#669999'><h2> Fiche logicielle </h2></td>";
        echo "</tr>\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 3 lignes.    
  echo "<tr bgcolor='#FF9900' text-align='center'>";
  echo "<td colspan='2'> N° d'enregistrement: <strong>" .$row['id']."</strong></td>"; // première ligne fusionnée pour le n° d'enregistrement (id)
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>" .$row['groupe']."</td>"; // affiche le groupe du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row['categorie']."</td>"; // affiche la catégorie du logiciel 
  echo "</tr>\n";
  echo "<tr>";
  echo "<td bgcolor='#F0F0F0'>" .$row['source']."</td>"; // affiche la source du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row['editeur']."</td>"; // affiche l'éditeur du logiciel 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['nom']."</td>"; // affiche le nom du logiciel 
  echo "<td bgcolor='#F0F0F0'>" .$row['ligne_produit']."</td>"; // affiche le nom (interne) de la ligne produit du logiciel 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['socle']."</td>"; // affiche le socle nécessaire pour son installation
  echo "<td bgcolor='#F0F0F0'>" .$row['reference_DSI']."</td>"; // affiche la référence DSI (cat, ref etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['standard_DSI']."</td>"; // affiche le standard de la DSI
  echo "<td bgcolor='#F0F0F0'>" .$row['type_licence']."</td>"; // affiche le type de licence (flottante, etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['version_standard']."</td>"; // affiche la version utilisée en standard à TM
  echo "<td bgcolor='#F0F0F0'>" .$row['compatibilite_XP']."</td>"; // affiche la compatibilité avec XP ou pas 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['versions_exploitation']."</td>"; // affiche le nombre de versions en exploitation
  echo "<td bgcolor='#F0F0F0'>" .$row['type_deploiement']."</td>"; // affiche le type de déploiement (script, manuelle etc...) 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['type_installation']."</td>"; // affiche le type d'installation (locale, réseau etc...) 
  echo "<td bgcolor='#F0F0F0'>" .$row['domaine']."</td>"; // affiche le domaine d'application
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['fonctionnalite']."</td>"; // affiche une courte description de sa fonctionnalité 
  echo "<td bgcolor='#F0F0F0'>" .$row['description']."</td>"; // affiche une description plus détaillée 
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['instructions']."</td>"; // affiche les instructions particulières s'il y en a
  echo "<td bgcolor='#F0F0F0'>" .$row['pre-requis']."</td>"; // affiche les pré-requis nécessaires a son installation
  echo "</tr>\n";
  echo "<td bgcolor='#F0F0F0'>" .$row['referent_metier']."</td>"; // affiche le référent métier de l'application 
  echo "<td bgcolor='#F0F0F0'>" .$row['commentaires']."</td>"; // affiche des commentaires s'il y en a 
  echo "</tr>\n";
  echo "</table>\n";
    // fin du tableau.
mysql_close();
?>

Si tu as d'autres problemes, n'hesite pas à me contacter (en MP)

PS : Je suis admiratif devant la qualité de la présentation/ les commentaires de ton code...
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
25 févr. 2007 à 21:04
Salut Thecanardwc44 et mille percis pour t'etre penché sur mon Pb.

Hélàs !
J'ai recopié tes 2 codes et voici ce que ça m'affiche:
Notice: Undefined index: id in g:\sites web\txiki\fiche_dyn.php on line 42

Notice: Undefined index: groupe in g:\sites web\txiki\fiche_dyn.php on line 44

Notice: Undefined index: categorie in g:\sites web\txiki\fiche_dyn.php on line 45
pour toutes les variables. et le tableau en dessous (dans le bon format (couleur de l'entête etc... mais toujours vide. En fait, je reviens au point de départ !
C'est a s'arracher les cheveux cette histoire.

Pour ce qui est de la page modif, effectivement, j'ai fait un formulaire pour les ajouts éventuels (donc tous les champs sont libres et a renseigner pour ajouter un logiciel dans la BDD. J'ai pas modifié le lien. Mais le tableau a afficher doit etre un formulaire SAUF que les champs doivent etre rempli selon le lien cliqué pour pouvoir modifier un élément du tableau.
Le Pb étant quand même que je voulais que celui qui fait une modif ou un ajout puisse voir ce qu'il a fait en affichant soit le premier tableau mais réduit a une lignesoit, une fiche comme le second tableau détaillé (celui qui s'affiche en cliquant sur le lien "Fiche détaillée"). J'ai bien le message correspondant (votre demande a bien été enregistrée) mais il ne montre rien et l'enregistrement est bien réalisé dans la base (vide puisque je ne rentre rien, juste valider) Donc, l'enregistrement est vide mais c'est normal.
Bon, mais ça: on verra plus tard !

En tous cas, encore merci pour ta générosité !



Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5
25 févr. 2007 à 21:13
je suis stupide!!!


je suis vraiment désolé d'avoir fait une erreur dans le code... en fait pour chaque variable ($row['id'],$row['groupe']..) il faut que tu remplace le nom par son numero par ordre d'apparition

par exemple ta table ressemble a ca :

ID | nom | groupe...
-----------------------
ca donne $row["0"],$row["1"] pour nom, $row["2"] pour groupe...

j'ai confondu avec le mysql_fetch_array... je suis vraiment désolé

EDIT : je vois que sur ta page web, tu n'a pas modifié les <a href> de la page "liste.php".. peut etre l'a tu fais ne local, c'est vital pour passer l'ID dans l'URL
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517 > Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008
25 févr. 2007 à 21:24
OUI, oui,
Ce qui m'emmerde, c'est que free, il faut le user ET le password alors je suis tout le temps en train de modifier le root par txiki et '' par mon pass.
Donc, je travaille en local pour le moment.
En fait, je ne sais pas modifier le httpdconf d'apache pour faire en sorte d'avoir un/des user/s autorisés pour certains fichiers comme fiche_dyn.php.....
Dis donc: dans ce que tu me dis plus haut, ça veut dire que je dois donner un a .row ? Selon la position qu'ils occupent dans la table ?
Eh merde ! Si j'avais su, j'aurais pas venu comme disait l'autre (la guerre des boutons hi hi hi)
Je teste illico...........
0
Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
25 févr. 2007 à 21:30
en fait tu n'a rien a modifier dans ta table .. il faut comprendre que quand tu fais SELECT *, il va te renvoyer les données dans un tableau classé dans le meme ordre que dans ta base de données (de gauche a droite)

voyons pluot le probleme comme ca :
ta base de donnée ressemble a ca :
ID : Integer index... -> ca correspond à $row["0"]
Nom : varchar... -> $row["1"]
groupe...

l'ideal serai que tu exporte ta table (sans les données) histoire que je vois sa structure

--> pour le proble "notice..." ca peut egalement cenir de la variable id... juste avant la requete , fais un
echo "La variable id est : $id";
juste pour voir si l'id est bien recupéré

... c'est en bidouillant qu'on devient bidouilleur

EDIT : la guerre des bouton, un grand classique.. faudrai qu'ils ressortent une edition en couleur;D

EDIT2 : en ce qui concerne les droits d'acces chez free, moi j'ai abandonné le htaccess et je suis partit chez OVH... par contre tu peux faire une page de "login"
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517 > Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008
25 févr. 2007 à 21:38
MERCI ! merci ! mon DIEUUUUU !

ça maaaaarche !

Je te met ça en ligne pour que tu vois!
Petit souci quand même: les champs sont renseignés mais on ne voit pas a quoi ils correspondent ? Je dois donc mettre un intitulé: contenu.
Mais ENFIN !
Ce truc du n° quand même... je ne connaissais pas.

Bon, tu remarquera que lorsque tu clique sur Modifier, la fenetre login s'affiche mais tu fais valider (sans rien mettre) ça marche quand même !.

Faut que je protège ça maintenant. J'ai pas trop réfléchi comment mais faut ABSOLUMENT que ce soit en accès limité aux personnes désignées dans un fichier spécifique (pas de htpasswrd possible chez free).
Et je ne maitrise pas du tout la sécurité en général alors en PHP ......

A dans 10 mn ;-)))))
Merci infiniment pour ce sérieux coup de main. Je ne sais pas d'ailleurs comment te remercier. Tu ne peux pas t'imaginer le poids dont tu me soulage ! ! !

0
Thecanardwc44 Messages postés 147 Date d'inscription dimanche 18 juillet 2004 Statut Membre Dernière intervention 3 février 2008 5 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
25 févr. 2007 à 21:51
effectivement, ca marche...
je vois ton truc du login de suite...

EDIT : Effectivement, ton login est pas tres utile.. ce que tu peux faire c'est soit creer une table dans ta BDD avec les pseudo/pass/droits des membres, soit creer un fichier php avec la signature md5 des mots de passes (plus adaptée si tu as peux d'utilisateurs autorisés..)

quant a la soltution htaccess, tu peux essayer mais j'ai free, j'ai pas reussi
0