|
|
|
| Если нужно проверить существует ли запись в баз данных с определёнными параметрами делаю так:
$sql = mysql_query("SELECT * FROM tower WHERE number='$number' and title='$title' ") or error(mysql_error() );
$sqlc=mysql_num_rows($sql);
|
if ($sqlc>0) { echo "В базе есть такая запись";}
Но во время открытия страницы таких проверок нужно сделать порядка 500, что как я думаю сильно влияет на время открытия страницы (до 15 секунд).
Решил, что следует заменить 500 обращений к базе данных, на 500 обращений к массиву данных 1 раз выбранных из базы. Это должно значительно сократить время, как я думаю.
Выбираем все данные:
$sql = mysql_query("SELECT * FROM tower");
|
А как дальше проверить, что в массиве есть запись с $number и $title?
Но в базе есть соответствующие поля, а с массивами как?
Помогите пожалуйста? | |
|
|
|
|
|
|
|
для: Port_Artur3
(22.10.2016 в 19:51)
| |
<?php
$array=['foo', 'bar', 'foobar'];
$where=' ';
while(list($key, $value)=each($array)){
$where.=($key===0) ? "`number`='$value' " : "OR `number`='$value' ";
}
echo $where;
?>
|
| |
|
|
|
|
|
|
|
для: Port_Artur3
(22.10.2016 в 19:51)
| |
<?
' ... WHERE number IN(' . implode(',', array_map('intval', $array)) . ') .... '
|
запрашивать все нет смысла. | |
|
|
|
|
|
|
|
для: confirm
(23.10.2016 в 16:41)
| | Вопрос, а будет ли это быстрее чем запрос к базе? | |
|
|
|
|
|
|
|
для: Port_Artur3
(23.10.2016 в 18:15)
| | А по вашему это строка из запроса к чему-то другому?
Вам надо выяснить есть ли записи в базе соответствующие набору определенных условий. Значит запрашивайте записи отвечающие только этим условиям, зачем же все, да еще потом перебирать в массиве? А если есть, запрос вернет найденные, в противном случае нет. | |
|
|
|
|
|
|
|
для: confirm
(23.10.2016 в 19:03)
| | У нас на выходные в планах рыбалка реке Ахтуба)) планируем через недельку туда ехать, вообще вот тут календарь есть https://gorodrabot.ru/calendar , там же найдете подробную информацию. | |
|
|
|