2015-08-03 2 views
1

Довольно просто ... Как объединить эти два запроса в один?Как объединить эти два запроса в один?

$sql = "UPDATE `data` SET `views` = `views` + 1 WHERE `id`=$id AND `source`='$source' AND `keyword`='$keyword'"; 

$sql = "UPDATE `settings` SET `count` = `count` + 1 WHERE `id`=$id"; 

EDIT:

Кроме того, есть вопрос о первых данных времени вводится, когда данные для обновления еще не существует в таблице данных.

Моя вставка запроса:

$sql = "INSERT INTO `_data` (`id`, `source`, `keyword`, `views`) VALUES ($id,'$source','$keyword',1)"; 

Можно ли совмещать вставку новых данных в одну таблицу, с обновлением в другой таблице?

+0

Как эти таблицы связаны друг с другом показывает свою ассоциацию –

+0

я боюсь, что я не знаю, что вы имеете в виду? –

+0

означает, существует ли какая-либо связь между вашими данными и таблицей настроек? –

ответ

2

Я предлагаю вам использовать подготовленные заявления.

$sql = "UPDATE data, settings 
     SET data.views = data.views+1, settings.count = settings.count+1, 
     WHERE data.id = $id AND data.source = $source AND data.keyword = $keyword AND settings.id = $id"; 
+0

Ahhh, похоже, именно то, что я представлял, но не мог выполнить работу. Я попробую это сейчас, спасибо! –

+0

К сожалению, вторая часть моего вопроса должна была быть, как сделать то же самое, но с помощью INSERT. Я уточню свой вопрос. –

+0

Вы бы сделали это сложным, со вставкой и обновлением в одном запросе. Если бы я был вами, я бы сначала проверял, существуют ли данные (возможно, сделав его простой функцией), и в зависимости от его результата будут либо вставляться, либо обновляться. – Akshay

0

Здравствуй Джонатан ван Clute,

Если вы хотите объединить два запроса в PHP, то вы можете попробовать, как это в вашем коде.

$sql = "UPDATE `data` SET `views` = `views` + 1 WHERE `id`=".$id." AND `source`='".$source."' AND `keyword`='".$keyword."';"; 

$sql .= "UPDATE `settings` SET `count` = `count` + 1 WHERE `id`=".$id.";"; 

Он объединит и добавит запрос в переменную $ sql. Если вы хотите срабатывал один запрос и обновить две записи в то время, то это возможно с одним

Как следующим

$sql ="UPDATE `data` as dt, `settings` as st SET dt.views = dt.views + 1 , st.count = st.count` + 1 WHERE dt.id=".$data_id." AND dt.source='".$source."' AND dt.keyword='".$keyword."' AND st.id=".$setting_id."; 

убедитесь, о вашем $ переменных Ид здесь я использовал различные varibles для другой таблицы, как

установка = $ setting_id и данных = $ data_id

выше запрос будет срабатывать один раз, но это будет обновлять две таблицы и две записи, как вы можете видеть, мы добавим две таблицы в UPDATE запрос таким образом, как способ две записи будет обновление.

Надеется, что это поможет вам

Спасибо [ '}

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