|
Posted by Siv Hansen on 02/14/06 01:49
J.O. Aho wrote:
> Beshoo wrote:
>
>> hi
>> I have this function to print each question and it`s answar / actually
>> from 2 tables answers and questions /
>>
>> I am taking the "question id" to be the "answer parent_id",so that I
>> can know each question and its answers..... ok!!
>>
>> the quey like this:
>>
>> function display (){
>> $sql="SELECT * from answers,questions WHERE
>> answers.parent_id=questions.question_id";
>> $exe=mysql_query($sql);
>> while ($row=mysql_fetch_assoc($exe))
>> {
>> echo $row['answer']."<br>";
>> echo $row['quest']."<br>";
>>
>> }
>> }
>> display();
>>
>> the problem is.. in this way the question will be printed more than one
>> time , in another word the questios will be printed each time its
>> answer printed !!!
>>
>> SO how I can print the question just one time???!!!
>> pleeeez !!!
>> thank you very much my frnds !!!
You could use a query like this:
$connection = mysql_connect('myHost', 'myUsername', 'myPassword') or
die("ConnectionError".mysql_error());
$database = mysql_select_db('myDatabase') or die ("DatabaseError ".
mysql_error());
$query = mysql_query("select id from table1") or die("Error in query1:
".mysql_error());
print ("<ul>");
while($result = mysql_fetch_array($query)){
$query2 = mysql_query("select table2_id from table2 where table1_id =
{$result['id']}") or die("Error in query2".mysql_error());
print "<li>". $result['id']. " ";
while($inner_query = mysql_fetch_array($query2)){
print "<ul><li>". $inner_query['table2_id']. "</li></ul>";
}
print "</li>";
}
print ("</ul>");
What this snippet does is to select all the rows from table1 (only the
id in this case), comparable to your questions.
Then it takes the result from the first query as input to a second...
(your answeres) and performes a join over the $result['id'] from the
outer query. And finally displays the result as a nicely formatted list ;o)
(most likely not valid html)
>>
> You can use the DISTINCT option when you fetch the data from the
> database, this way you will get just one line even if the are doublets.
>
> If you have more than one answer to the same question, then I would
> suggest you keep track of the question.id and compare it with the
> current question.id, if it's the same then don't print the answer, if
> it's different, then print and set the storage variable to the new
> question.id.
>
>
> //Aho
[Back to original message]
|