Значи проблема този път е следният, правя си анкета, която да има колкото искаш възможни отговора, това се дефинира отначало(колко да са възможните отговори) след като ги дефинираш примерно 2, излизат полетата за заглавието на анкетата и съответно възможните отговори, сайта е многоезичен(В случая е на 4 езика) и съответно вместо 1 поле да речем за заглавието излизат 4 съответно за всеки език по едно, така и за отговорите
Ето картинка какво представлява в случая
Та така нека си дойдем на проблема, когато се добавят отговорите кода е така структориран, че когато добавя в базата отговорите се добавя само първият отговор от езиците, тоест имам таблица която садържа отговорите примерно poll_answers и полетата са
id | title_bg | title_en | title_fr | title_de
и така когато добавям отговорите, от първата заявка се запълва само първите две полета, тей като целия код е в един голям цикъл и целта е просто да се добави в базата и после просто да се ъпдейтне с една заявка и да се запълнят останалите полета с останалите резултати.. и тук идва проблема нали възможните отговри са 2, когато се изпълни първата заявка, която добавя ид-то и title_bg всичко е ок, но когато се ъзпълни втората, която ъпдейтва за да запълни и другите полета стойностите от двете полета са еднакви, и тези стойности които се запълват винаги са на последният отговор, тоест ако на последният съм написал за полето title_en English 2 то той ще е стойност и на другите полета.. Обяснявам всичко това за да ви е по лесно да разберете кода, защото иначе ще ви е трудно..
Ето картинка какво представлява в случая
Та така нека си дойдем на проблема, когато се добавят отговорите кода е така структориран, че когато добавя в базата отговорите се добавя само първият отговор от езиците, тоест имам таблица която садържа отговорите примерно poll_answers и полетата са
id | title_bg | title_en | title_fr | title_de
и така когато добавям отговорите, от първата заявка се запълва само първите две полета, тей като целия код е в един голям цикъл и целта е просто да се добави в базата и после просто да се ъпдейтне с една заявка и да се запълнят останалите полета с останалите резултати.. и тук идва проблема нали възможните отговри са 2, когато се изпълни първата заявка, която добавя ид-то и title_bg всичко е ок, но когато се ъзпълни втората, която ъпдейтва за да запълни и другите полета стойностите от двете полета са еднакви, и тези стойности които се запълват винаги са на последният отговор, тоест ако на последният съм написал за полето title_en English 2 то той ще е стойност и на другите полета.. Обяснявам всичко това за да ви е по лесно да разберете кода, защото иначе ще ви е трудно..
Код:
if(isset($_POST['submit']))
{
$lang=mysql_query("SELECT `short` FROM `languages` ORDER BY `id` ASC") or die(mysql_error());
while($lang_row=mysql_fetch_assoc($lang))
{
$short=$lang_row['short'];
for ($i=1; $i<=$num; $i++)
{
$arraya2=array("title_$lang_row[short]_$i");
foreach ($arraya2 as $array2)
{
$post2=$_POST[$array2];
$table=$array;
$table=explode("_", $table);
$table=$table[0]."_".$table[1];
$ask=mysql_query("SELECT `id` FROM `poll_panel_ask` ORDER BY `id` DESC LIMIT 1") or die(mysql_error());
$ask_r=mysql_fetch_assoc($ask);
$ask_id=$ask_r['id'];
$ans=mysql_query("SELECT `id` FROM `poll_panel_answer` WHERE `ask_id` = '$ask_id'") or die(mysql_error());
$ans_n=mysql_num_rows($ans);
if ($ans_n < $num)
{
$up3=mysql_query("INSERT INTO `poll_panel_answer` (`id`, `ask_id`, `$table`, `result`) VALUES ('', '$ask_id', '$post2', '')") or die(mysql_error());
}
else
{
$sel=mysql_query("SELECT `id` FROM `poll_panel_answer` ORDER BY `id` DESC LIMIT $num") or die(mysql_error());
while($r=mysql_fetch_assoc($sel))
{
$up7=mysql_query("UPDATE `poll_panel_answer` SET `$table` = '$post2' WHERE `id` = '$r[id]'") or die(mysql_error());
}
}
}
}
}
}