Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с базой через массив
 
 автор: Port_Artur3   (22.10.2016 в 19:51)   письмо автору
 
 

Если нужно проверить существует ли запись в баз данных с определёнными параметрами делаю так:


$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?
Но в базе есть соответствующие поля, а с массивами как?
Помогите пожалуйста?

  Ответить  
 
 автор: Deed   (23.10.2016 в 10:20)   письмо автору
 
   для: 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;
?>

  Ответить  
 
 автор: confirm   (23.10.2016 в 16:41)   письмо автору
 
   для: Port_Artur3   (22.10.2016 в 19:51)
 

<?
' ... WHERE number IN(' implode(','array_map('intval'$array)) . ') .... ' 


запрашивать все нет смысла.

  Ответить  
 
 автор: Port_Artur3   (23.10.2016 в 18:15)   письмо автору
 
   для: confirm   (23.10.2016 в 16:41)
 

Вопрос, а будет ли это быстрее чем запрос к базе?

  Ответить  
 
 автор: confirm   (23.10.2016 в 19:03)   письмо автору
 
   для: Port_Artur3   (23.10.2016 в 18:15)
 

А по вашему это строка из запроса к чему-то другому?
Вам надо выяснить есть ли записи в базе соответствующие набору определенных условий. Значит запрашивайте записи отвечающие только этим условиям, зачем же все, да еще потом перебирать в массиве? А если есть, запрос вернет найденные, в противном случае нет.

  Ответить  
 
 автор: kingsprut   (27.04.2018 в 07:43)   письмо автору
 
   для: confirm   (23.10.2016 в 19:03)
 

У нас на выходные в планах рыбалка реке Ахтуба)) планируем через недельку туда ехать, вообще вот тут календарь есть https://gorodrabot.ru/calendar , там же найдете подробную информацию.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования