0

i need help with the code below.. the code does not get correct qid from table questions.

let say i enter 2 qtitle, and each qtitle has 3 atitle..
but once the data entered in database..

the error is like below:

(qid=1)qtitle1- (none of the atitle having qid1)

(qid=2)qtitle2- atitle1, atitle2, atitle3, atitle4, atitle5, atitle6 (all the atitle having qid2)

anyone can help me to solve this problem.. i realy need some help.. the error is on the coding below..

<?php
foreach ($_POST['questions'] as $q) {
        if (trim($q) != '') {
            $qtitles[] = $q;
        }
    }
	
foreach ($qtitles as $qtitle) {
        $query = "INSERT INTO questions (qtitle) VALUES ('$qtitle')";
        $result = mysql_query($query) or die("ERROR: $query. ".mysql_error());
    }
	
    $qid = mysql_insert_id();

    unset($query);
    unset ($result);


foreach ($_POST['options'] as $o) {
        if (trim($o) != '') {
            $atitles[] = $o;
        }
    }

    foreach ($atitles as $atitle) {
        $query = "INSERT INTO answers (qid, atitle, acount) VALUES ('$qid', '$atitle', '0')";
        $result = mysql_query($query) or die("ERROR: $query. ".mysql_error());
    }
?>
2
Contributors
3
Replies
4
Views
8 Years
Discussion Span
Last Post by shlomia
0

mysql_insert_id() gives you the ID of the most recent INSERT command you run.
In your code, you get the qid only once after you finish inserting all the qtitles, this is why you only get the qid of the last qtitle.

You should do the mysql_insert_id() after each INSERT, within the qtitle foreach, and nest the atitle foreach in the qtitle for each (after the mysql_insert_id)

0

i do understand wat u mean shlomia.. but a bit confused on how to alter the code.. i would appericiate ur help if u willing to show me hw to alter the code.. thanks in advance.

0

i do understand wat u mean shlomia.. but a bit confused on how to alter the code.. i would appericiate ur help if u willing to show me hw to alter the code.. thanks in advance.

The code should be something like this.
with an exception - the following code will insert all 6 answers for both questions. It's up to you to decide which answer should go with which question and handle this within the answers foreach.

<?php
 foreach ($_POST['questions'] as $q) 
 {
	if (trim($q) != '') 
	{
		$qtitles[] = $q;
	}
 }
 
 foreach ($_POST['options'] as $o) 
 {
	if (trim($o) != '') 
	{
		$atitles[] = $o;
	}
 }
  
 foreach ($qtitles as $qtitle) 
 {
	$query = "INSERT INTO questions (qtitle) VALUES ('$qtitle')";
	$result = mysql_query($query) or die("ERROR: $query. ".mysql_error());
	$qid = mysql_insert_id();
	
	foreach ($atitles as $atitle) 
	{
		$a_query = "INSERT INTO answers (qid, atitle, acount) VALUES ('$qid', '$atitle', '0')";
		$a_result = mysql_query($a_query) or die("ERROR: $a_query. ".mysql_error());
	}
 }
  
 unset($query);
 unset ($result);
 unset($a_query);
 unset ($a_result);
 
 ?>

Edited by shlomia: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.