2016-08-23 2 views
0

У меня есть 2 таблицыPHP реализация заявления MySql

test_pattern с колонкой:

  • идентификаторов, URL, создатель

test_map с колонкой

  • id, url
  • пример данных
    • ID: 1, URL: "www.abc/"
    • ID: 2, URL: "www.abc/?a=b"
    • ID: 3, URL: «www.abc/testing»

у меня есть сайт, который считывают список адресов из test_map, и пользователь сможет выбрать URL для вставки в test_pattern

  • Теперь, когда пользователь выберите URL, чтобы добавить его следует проверить с test_map и добавить соответствующий URL с querystings
  • Пример, когда выберите "www.abc/" он должен добавить «www.abc/» и «www.abc/?a=b».
  • Наконец, если URL уже существует в test_pattern, оно не должно быть добавлено

Я пришел наш с рабочим SQL заявление:

SELECT * FROM (SELECT NULL as id, url as url, "Ronny" as creator 
from test_map where url LIKE '%www.abc/?%') as tmp WHERE NOT EXISTS (SELECT pattern FROM test_pattern WHERE pattern LIKE '%www.abc/?%'); 

Однако я не знаю, как внедрить его в php, это то, что я пробовал:

$sql = array(
sprintf('INSERT INTO %s SELECT * FROM (SELECT NULL as id, url as url, %s as creator FROM test_map WHERE url LIKE '%%s%') 
AS tmp', "'".$creator."'", "'".$url."?'". 
' WHERE NOT EXISTS (SELECT * FROM test_pattern WHERE url LIKE '%'.sprintf('%s',"'".$url."?'").'%') LIMIT 1' 
); 

Просьба помочь в PHP-реализации инструкции sql. Благодаря

+1

вы используете какие-либо ** MySQLi _ ** функции? сообщите пожалуйста. –

+0

вам нужно подключиться к вашей базе данных и выполнить запрос затем после. Для более http: //www.w3schools.com/php/php_ref_mysqli.asp –

ответ

0

Установить поле URL в test_pattern как уникальный, а затем просто сделать

WHERE url LIKE '$url%' 

Нет необходимости для проверки значения, если существует в test_pattern

+0

На самом деле есть больше столбцов, которые я должен проверить, это должно быть ** создатель ** и ** url ** комбинация должна быть уникальной, что означает тот же ** url **, но другой ** создатель ** приемлем. Следовательно, я не редактировал как уникальное поле. – Chino

+0

Я вижу, что это не проблема, если вы сделали это так. но тогда я бы сказал, чтобы разбить код на проверку, а затем добавить еще вы можете использовать insert с выбором – Motsim

+0

, я нашел проблему, проблема - ** %% s% **, я не могу использовать '% s' в' LIKE '%%' ', однако, я не знаю, как я могу вставить'% s' в 'LIKE '%%'' – Chino

0

Я нашел этот вопрос, мы не можем использовать %s непосредственно в LIKE вот так %% s%.

В последнее значение между %%, нам нужно сделать, это %%%s%%

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