Pb de commentaires

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:03

Bonjour à tous,

Je réalise un petit intranet (enfin j'essaye). Et j'ai un pb au niveau des commentaires.

Le principe est :

Un utilisateur rempli un formulaire et le valid
l'adminstrateur de son coté "recoit" les données et souhaite répondre a cette personne.

Jusque la rien de bien compliquer

Mais mon pb, c'est que j'aimerai que la réponse soit enregistrée avec la question, pour que je puisse les afficher ensemble

Un peu le systeme d'un faq en faite


Si vous pouviez m'expliquer le principe avant le code pour bien comprendre

THX

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:09

Et bien tu fais une table question et une table réponse, avec une clef dans la table reponses la liant a une question
Ou tu fais une table messages avec un champs id_question, relier a la question message de cette meme table.

Pour le code, fait nous voir ce que tu as deja fait, apres on verra ce qui coince.
Nous ne fesons pas de code comme ca.


@+

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:14

<?php


include('connection.inc.php');
$query = "SELECT * FROM fiche_progres WHERE id='".$_GET['id']."'";
$result = mysql_query($query);

$nb = mysql_numrows($result);

while ($val = mysql_fetch_array($result))

{ /* On parcoure les résultats de la requête */

$auteur = $val["auteur"];
$date = $val["date"];
$dys_interne = $val["dys_interne"];
$dys_externe = $val["dys_externe"];
$critic = $val["critic"];
$incident = $val["incident"];
$solution = $val["solution"];
$suggestion = $val["suggestion"];
$description = $val["description"];


echo "




<table width='600' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td>Auteur : $auteur</td>
<td>Date : $date</td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td colspan='2'>Nature de la Fiche Progr&egrave;s </td>
</tr>
<tr>
<td>Dysfonctionnement interne : $dys_interne</td>
<td>Dysfonctionnement Externe : $dys_externe</td>
</tr>
<tr>
<td>Incident li&eacute; &agrave; un prestataire : $incident</td>
<td>Suggestion : $suggestion</td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Criticit&eacute; : $critic</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Contenu de la fiche progr&egrave;s </td>
<td></td>
</tr>
<tr>
<td>Description de la situation : $description</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Solution(s) propos&eacute;e(s) $solution</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td colspan='2' height=1 bgcolor='#6699FF'></td>
</tr>
</table>

";

}




mysql_close();



?>
<form method="post" action="ajout_reponse.php" enctype="multipart/form-data">
<p><span class="backoffice">
<br>
Auteur : <br>
<select name="nom">
<option selected>Votre nom...</option>
<option>TEST</option>
<option>TESTt</option>
<option>TEST</option>
</select>
<br>
<br>
<br>
<br>
R&eacute;ponse :<br>
<textarea name="reponse"cols="50"rows="5"></textarea>
<br>
<br>

</span></p>
<p align="center"><span class="backoffice">
<input type="submit" value="Valider" name="submit">
<a href="adm_fiche_progres.php">Annuler</a></span> </p>
</form>

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:15

Donc voici ma page qui affiche les données de la bdd avec le champ de réponse en dessous.

Je ne vois pas trop comment lié la réponse à la question

Merci de votre aide

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:19

Ouch, les balises php -_-

donc, ta table a un identifiant je suppose. Il faut le récuperer dans une variable

Je vais appeler cette variable $id pour l'exemple.

Tu peux par exemple créer une autre table pour les réponses, genre :
reponses {
  [u]id_rep[/u] (auto_increment)
  nom
  reponse
  id_question
} 
Ensuite :
<form method="post" action="ajout_reponse.php?id=<?php echo $id;?>" enctype="multipart/form-data">

Et dans la page ajout_reponse.php:
- tu verifies qu'il existe bien une question ayant pour identifiant $_GET["id"];
- tu inseres dans la table reponses les valeurs $_POST["nom"], $_POST["reponse"], et $_GET["id"].

Ainsi, a partir des reponses tu peux retrouver les questions, et vice-versa

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:22

Ok merci je vais essayer

J'avais crée ma table réponse.

merci

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:24

Au passage,

Code : Tout sélectionner

enctype="multipart/form-data"
ne sert a rien dans ton cas ;)

@+

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:28

Je crois que j'ai pas tout saisi...

voici le code ma page ajout_reponse

<?

include('connection.inc.php');



$query = "INSERT INTO reponse_fiche(id_rep,nom,reponse) VALUES ('','".$_POST['nom']."','".$_POST['reponse']."');'"$_GET["id"]."';
$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error());

mysql_close();

header('location: adm_fiche_progres.php');
?>

A quel moment la bdd va enregistré l'id de ma question dans la table reponse pour permettre de les afficher ensemble?

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:29

reregarde ta requete, il y a une faute.
$query = "INSERT INTO reponse_fiche(nom,reponse,id_question) VALUES ('".$_POST['nom']."','".$_POST['reponse']."','".$_GET["id"]."')";

inutile de preciser id_rep dans le insert si c'est un auto_increment.
$_GET["id"] est l'id de la question.

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:35

Désolé de te faire perdre du temps mais j'aimerai comprendre un truc

Mes questions sont stockées dans la bdd avec une variable id (tel est son nom)

Donc quand je raffiche ma questions et que le formulaire de réponse est validé, c'est bien l'id de la question que je dois récuperer pour le stocker avec la réponse

c bien ca le principe?

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:39

Pour reprendre

le code de ma page qui affiche les données et le formulaires pour y répondre

<?php


include('connection.inc.php');
$query = "SELECT * FROM fiche_progres WHERE id='".$_GET['id']."'";
$result = mysql_query($query);

$nb = mysql_numrows($result);

while ($val = mysql_fetch_array($result))

{ /* On parcoure les résultats de la requête */

$auteur = $val["auteur"];
$date = $val["date"];
$dys_interne = $val["dys_interne"];
$dys_externe = $val["dys_externe"];
$critic = $val["critic"];
$incident = $val["incident"];
$solution = $val["solution"];
$suggestion = $val["suggestion"];
$description = $val["description"];


echo "




<table width='600' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td>Auteur : $auteur</td>
<td>Date : $date</td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td colspan='2'>Nature de la Fiche Progr&egrave;s </td>
</tr>
<tr>
<td>Dysfonctionnement interne : $dys_interne</td>
<td>Dysfonctionnement Externe : $dys_externe</td>
</tr>
<tr>
<td>Incident li&eacute; &agrave; un prestataire : $incident</td>
<td>Suggestion : $suggestion</td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Criticit&eacute; : $critic</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Contenu de la fiche progr&egrave;s </td>
<td></td>
</tr>
<tr>
<td>Description de la situation : $description</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td>Solution(s) propos&eacute;e(s) $solution</td>
<td></td>
</tr>
<tr>
<td>&nbsp;</td>
<td></td>
</tr>
<tr>
<td colspan='2' height=1 bgcolor='#6699FF'></td>
</tr>
</table>

";

}




mysql_close();



?>
<form method="post" action="ajout_reponse.php?id=<?php echo $id;?>">
<p><span class="backoffice">
<br>
Auteur : <br>
<select name="nom">
<option selected>Votre nom...</option>
<option>Herv&eacute; Gicquel</option>
<option>Yannis Monnet</option>
<option>Vincent Guy</option>
</select>
<br>
<br>
<br>
<br>
R&eacute;ponse :<br>
<textarea name="reponse"cols="50"rows="5"></textarea>
<br>
<br>

</span></p>
<p align="center"><span class="backoffice">
<input type="submit" value="Valider" name="submit">
<a href="adm_fiche_progres.php">Annuler</a></span> </p>
</form>


Le code de ma page qui va enregistrer la réponse en stockant l'id de la question.

<?

include('connection.inc.php');



$query = "INSERT INTO reponse_fiche(nom,reponse,id) VALUES ('','".$_POST['nom']."','".$_POST['reponse']."','".$_GET['id']."')";
$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error());

mysql_close();

header('location: adm_fiche_progres.php');
?>

Dans ma table reponse_fiche j'ai les champ suivant

id_rep (autoincrement)
nom
reponse
id ( pour la question)

cela est-il correct dans le principe car cela ne marche pas :)

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:42

ta requete est toujours fausse... je t'ai donné la requete sans faute pourtant.

Et tu ne recupere $id nulle part.
Il faut le recuperer plus haut dans ton script avant de vouloir le passer a une autre page.
Sinon y a rien qui passe.

Et utilise les balises PHP la prochaine fois, car la c'est illisible.

Invité
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:44

ta requete est toujours fausse... je t'ai donné la requete sans faute pourtant.

Et tu ne recupere $id nulle part.
Il faut le recuperer plus haut dans ton script avant de vouloir le passer a une autre page.
Sinon y a rien qui passe.

Et utilise les balises PHP la prochaine fois, car la c'est illisible.
Désolé pour l'affichage j'ai utilser les balises de les forum (ca marche comment au passage :))

Et comment ca je ne recupere pas $id??

Mammouth du PHP | 543 Messages

01 sept. 2005, 16:45

Le $id que tu transmet a ajout_reponse.php, il correspond a quoi ?

pour les balises, tu selectionnes le code, et tu clique sur le bouton PHP jute la au dessus.

Danhila
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 16:49

$id de ajout reponse n'est pas cénsé recupérér $id de la question justement?

Pour la requete je comprends pas le pb
$query = "INSERT INTO reponse_fiche(nom,reponse,id) VALUES ('','".$_POST['nom']."','".$_POST['reponse']."','".$_GET['id']."')"; 
et je pense avoir un pb de syntaxe dans le formulaire qui enregistre la réponse et $id de la question
        <form method="post" action="ajout_reponse.php?id=<?php echo $id;?>">