enter image description here

Hello. It is necessary to divide the two cycles (so that they are executed independently of each other) and then insert them into the INSERT query sql. I'm puzzling, I do not know how to do it.

Completely code here: http://pastebin.com/qY5hDpxZ and below in the spoiler

<form action="" method="post"> <table> <tr> <td>Параметр 1</td> <td>Тег 1</td> <td>Параметр 2</td> <td>Тег 2</td> <td>Параметр 3</td> <td>Тег 3</td> <td>Параметр 4</td> <td>Тег 4</td> <td>Параметр 5</td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" value=' '/></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> <tr> <td><input type="text" name="mass[]" /></td> <td><input type="text" name="tag[]" /></td> <td><input type="text" name="masss[]" /></td> <td><input type="text" name="tagg[]" /></td> <td><input type="text" name="massss[]" /></td> <td><input type="text" name="taggg[]" /></td> <td><input type="text" name="masssss[]" /></td> <td><input type="text" name="tagggg[]" /></td> <td><input type="text" name="massssss[]" /></td> </tr> </table> <input type="submit" name="submit" value="Поехали!"><br> </form> <?php $arr1 = array_diff($_POST['mass'], array('')); $arr2 = array_diff($_POST['masss'], array('')); $arr3 = array_diff($_POST['massss'], array('')); $arr4 = array_diff($_POST['masssss'], array('')); $arr5 = array_diff($_POST['massssss'], array('')); $tag1 = array_diff($_POST['tag'], array('')); $tag2 = array_diff($_POST['tagg'], array('')); $tag3 = array_diff($_POST['taggg'], array('')); $tag4 = array_diff($_POST['tagggg'], array('')); $proverkakategoriy=mysql_query('SELECT virtuemart_category_id, category_name FROM ak89e_virtuemart_categories_ru_ru WHERE INSTR(CONCAT(category_name), "'.$arr1[0].'" ) AND INSTR(CONCAT(category_name), "'.$arr1[1].'" ) AND INSTR(CONCAT(category_name), "'.$arr1[2].'" ) AND INSTR(CONCAT(category_name), "'.$arr1[3].'" ) AND INSTR(CONCAT(category_name), "'.$arr1[4].'" ) AND INSTR(CONCAT(category_name), "'.$arr2[0].'" ) AND INSTR(CONCAT(category_name), "'.$arr2[1].'" ) AND INSTR(CONCAT(category_name), "'.$arr2[2].'" ) AND INSTR(CONCAT(category_name), "'.$arr2[3].'" ) AND INSTR(CONCAT(category_name), "'.$arr2[4].'" ) AND INSTR(CONCAT(category_name), "'.$arr3[0].'" ) AND INSTR(CONCAT(category_name), "'.$arr3[1].'" ) AND INSTR(CONCAT(category_name), "'.$arr3[2].'" ) AND INSTR(CONCAT(category_name), "'.$arr3[3].'" ) AND INSTR(CONCAT(category_name), "'.$arr3[4].'" ) AND INSTR(CONCAT(category_name), "'.$arr4[0].'" ) AND INSTR(CONCAT(category_name), "'.$arr4[1].'" ) AND INSTR(CONCAT(category_name), "'.$arr4[2].'" ) AND INSTR(CONCAT(category_name), "'.$arr4[3].'" ) AND INSTR(CONCAT(category_name), "'.$arr4[4].'" ) AND INSTR(CONCAT(category_name), "'.$arr5[0].'" ) AND INSTR(CONCAT(category_name), "'.$arr5[1].'" ) AND INSTR(CONCAT(category_name), "'.$arr5[2].'" ) AND INSTR(CONCAT(category_name), "'.$arr5[3].'" ) AND INSTR(CONCAT(category_name), "'.$arr5[4].'" ) '); while($row=mysql_fetch_array($proverkakategoriy)) { echo '<p style="color:blue;">Совпадения: '.$row['virtuemart_category_id'].' '.$row['category_name'].'</p>'; echo '<p style="color:red;">Есть совпадения, скрипт не сработает</p>'; } if (mysql_num_rows($proverkakategoriy)==0){ foreach($arr1 as $word1) { foreach($arr2 as $word2) { foreach($arr3 as $word3) { foreach($arr4 as $word4) { foreach($arr5 as $word5) { foreach($tag1 as $teg1) { foreach($tag2 as $teg2) { foreach($tag3 as $teg3) { foreach($tag4 as $teg4) { echo 'INSERT INTO ak89e_virtuemart_product_categories (category_name,<br> tag1, tag2, tag3, tag4,<br> customtitle,<br> metadesc,<br> metakey,<br> category_description ) VALUES ('.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.',<br> '.$teg1.','.$teg2.','.$teg3.','.$teg4.',<br> "Купить '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' в интернет-магазине - цена, описание, фотографии, характеристики",<br> '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' купить в интернет магазине с доставкой, гарантией. Смотрите на сайте фотографии, описание, полные характеристики, отзывы. ,<br> '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.',<br> "В разделе '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' нашего интернет-магазина вы найдете подробное описание, отзывы, цены. Для удобства мы предоставили полные характеристики, фотографии, похожие и сопутствующие товары. Будем благодарны, если вы оставите свой отзыв о товарах. Купить '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' вы сможете по привлекательным ценам на нашем сайте." )<br><br><br>'; } } } } } } } } } } ?> 
  • arrays are generated as follows prntscr.com/e5btx6 prntscr.com/e5btlp - Riad
  • five
    but here are 9 cycles, not two - Grundy
  • I need $ word and $ teg to work separately. in this case, $ word is first duplicated and $ teg "multiplied", and as soon as $ teg "multiplied, they begin to be duplicated and" multiply "$ word - Riad
  • 2
    I think you hardly can help with this nightmare. Because it is a quiet horror. I can’t even imagine how much time it is doing and how it works But you obviously need refactoring. - Alexey Shimansky
  • four
    Holy shi -...... - user207618

2 answers 2

I would rewrite the code if I were you, unfortunately (rather fortunately) I did not understand what it was doing:

  • I did not understand why there are so many variables from arr[1,5] and tag[1,5]
  • Strange query to the database ak89e_virtuemart_categories_ru_ru and why such a condition? And I want to note that the variable is not escaped and there is a place for sql injection , and I would advise you to rewrite at least using mysqli and building queries, you can read here .
  • So why so many cycles?

Well, as I understood from the screenshot that this thing works somehow like this: we drive in 3 columns with words and write only unique words for each column into the database


In this example, you can also use sql injection

It seems to me that something like this should help (BUT I ADVISE TO Rewrite the code):

 if (mysql_num_rows($proverkakategoriy)==0){ foreach($arr1 as $word1) { foreach($arr2 as $word2) { foreach($arr3 as $word3) { foreach($arr4 as $word4) { foreach($arr5 as $word5) { echo 'INSERT INTO ak89e_virtuemart_product_categories (category_name,<br> tag1, tag2, tag3, tag4,<br> customtitle,<br> metadesc,<br> metakey,<br> category_description ) VALUES ('.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.',<br>'; foreach($tag1 as $teg1) { foreach($tag2 as $teg2) { foreach($tag3 as $teg3) { foreach($tag4 as $teg4) { echo $teg1.','.$teg2.','.$teg3.','.$teg4.',<br>'; } } } } echo '"Купить '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' в интернет-магазине - цена, описание, фотографии, характеристики",<br> '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' купить в интернет магазине с доставкой, гарантией. Смотрите на сайте фотографии, описание, полные характеристики, отзывы. ,<br> '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.',<br> "В разделе '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' нашего интернет-магазина вы найдете подробное описание, отзывы, цены. Для удобства мы предоставили полные характеристики, фотографии, похожие и сопутствующие товары. Будем благодарны, если вы оставите свой отзыв о товарах. Купить '.$word1.' '.$word2.' '.$word3.' '.$word4.' '.$word5.' вы сможете по привлекательным ценам на нашем сайте." )<br><br><br>'; } } } } } } 

    checking is to determine if there are matches in the database with values ​​in input.
    Your option is only suitable for echo output, but I will need to make a complete INSERT request to the database, I do not know how to implement it.
    http://prnt.sc/e5cawn
    words from left to right go through all the input input, there should not be duplicates