2016-03-12 2 views
1

Я работаю над поиском продукта в PHP/MySQL. Когда пользователь ищет продукт (может искать более одного продукта.), Он должен принимать данные из таблицы A и вставки в таблице B. Пользователь может искать более одного продукта. У меня проблема в запросе. Он медленный, и он не получает все продукты, связанные с поиском продукта.С PHP/MYSQL необходимо Вставить в таблицу с условием IN

Мой SQL запрос ниже:

$arr = explode(",",$values["prod_cat"]); 

for ($i=0;$i<count($arr);$i++) 
{ 
$strSQLInsert = "INSERT INTO TABLE B (sup_id, sup_name, sup_product, sup_contactperson, 
sup_contactperson_email, tender_id) (SELECT sup_id, sup_name, sup_prod_name, sup_contactperson, 
sup_email, ".$values["tender_id"]." FROM TABLE A WHERE sup_prod_name IN ('".$arr[$i]."') 
GROUP BY sup_name)"; 

ли хорошо использовать 'IN' Состояние или 'LIKE' состоянии. Является ли этот запрос наилучшим способом достижения результата?

+1

Почему вы используете цикл и mysql в момент времени. $ arr [$ i] вернет одно значение из вашего массива. – codeGig

+0

Iam новичок в php/mysql. Не могли бы вы предложить мне лучшее решение с запросом. –

+0

В порядке. Но почему есть предложение GROUP BY ??? – Strawberry

ответ

-1

Попробуйте сделать это вместо:

$strSQLInsert = " 
    INSERT INTO TABLE B 
    (
     sup_id, sup_name, sup_product, sup_contactperson, sup_contactperson_email, tender_id 
) 
    SELECT 
    sup_id, sup_name, sup_prod_name, sup_contactperson, sup_email, ".$values["tender_id"]." 
    FROM 
    TABLE A 
    WHERE sup_prod_name IN ('".$values["prod_cat"]."') 
    GROUP BY sup_name"; 

С $values["prod_cat"] уже через запятую строка, которую вы можете вставить его прямо в SQL-строку.

+0

Вы уверены? sup_produ_name - это строка, и вы помещаете целую строку в одну цитату. это эта работа? – codeGig

+0

Позвольте мне просто проверить, что это работает, но у меня была проблема с одинарной записью previousy. –

+0

Фактически значения $ ["prod_cat"] не разделяются запятой. Для этого я использовал $ arr = explode (",", $ values ​​["prod_cat"]). Я прав? –

Смежные вопросы