Pb PHP récursive+requête

Fermé
Douille - 9 avril 2008 à 10:54
 Douille - 9 avril 2008 à 12:49
Bonjour,

je suis actuellement en stage, le sujet est un peu compliqué mais le but est :

j'ai 4 langues à gérer + 4 legislations. Dans ces 4 legislations chaque pays peut ajouter une question, et traduire les questions des autres legislations de sorte à ce que tout le monde se comprenne.

J'ai donc 5 tables : legislation : ID_legis+pays
langue : ID_langue+langue
question_num: ID_quest+num_question
question: ID_quest+ID_legis+question
traduction:ID_quest+ID_langue+ traduction

Les tables comporte d'autre colonne j'ai pris celles qui me semblais les plus utiles ici

On a donc une question pour plusieurs traduction et plusieurs traductions (en différentes langues) pour un seule question.

Je repère les traductions de la question à l'aide de l'ID_quest.

Maintenant un italien se connecte, il choisi la legislation française et la langue italien pour mettre à jour ces traductions (donc du français à l'italien): Je lui affiche donc toute les questions française et je veux lui afficher seulement les traductions qui correspondent aux questions du français mais avec le code suivant il me met toute les traduction de l'italien pour toute les questions des autres legislations :


<script language="php">

$c = pg_connect("host=iuthaprojet dbname=schneider user=schneider password=mat1795");



if ($c) {



$result_quest = pg_exec($c,"SELECT id_quest,chapitre,question,date,valide from question_acte where legislation='$liste'"); liste = choix de la legislation
j'ai aussi une "liste_l" pour le choix de langue mais je ne l'utilise


}



$nlignesqu_quest = pg_numrows($result_quest);

for ($i=0;$i<$nlignesqu_quest;$i++)

{
list($id_quest,$chapitre,$question,$date,$valide) = pg_fetch_row($result_quest,$i);

if($i %2==0) $color="lightgrey"; else $color="lightblue";



print("<TR bgcolor='$color'>");

print("<TD ALIGN='center'>$chapitre</TD>");
print("<TD ALIGN='center'>$question</TD>");

print("<TD ALIGN='center'>$valide</TD>");

print("<TD ALIGN='center' colspan='3'>$date</TD>");
print("</TR>");

$result_trad = pg_exec($c, "SELECT id_quest,traduction,date from traduction_acte NATURAL JOIN question_acte");

$nlignesqu_trad = pg_numrows($result_trad);

for ($i=0;$i<$nlignesqu_trad;$i++)

{
list($id_quest,$traduction) = pg_fetch_row($result_trad,$i);

if($i %2==0) $color="lightgrey"; else $color="lightblue";
print("<TR bgcolor='$color'>");
print("<TD ALIGN='center'>$traduction</TD>");
print("</TR");
}


print("<TR><TD colspan='3'>   </TD></TR>");
}

</script>

Voilà pour mon code et mon problème, je me tien à vs entière disposition pour plus d'info, au cas ou ;)

Merci d'avance à ceux qui pourront me répondre

Cordialement,

Mr. Douille
A voir également:

1 réponse

Re,

Mon erreur est surement dans cette requête :

"SELECT id_quest,traduction,date from traduction_acte NATURAL JOIN question_acte"

faudrait que j'arrive à récuperer l'ID_quest pour lui dire de n'afficher que les traductions de l'ID_quest correspondant...

cordialement

Douille
0