Запросы mySQL - разница по оптимизации

Программирование, которое не связано с API.
Ответить
Аватара пользователя
tofido
Сообщения: 113
Зарегистрирован: 02 май 2012, 15:44

Запросы mySQL - разница по оптимизации

Сообщение tofido »

Слушайте, а в таких кодах есть же разница по оптимизации или нет?

Первый вариант:

Код: Выделить всё

$sql = "SELECT * from qwerty ..."; if (mysql_fetch_assoc(mysql_query($sql))) {while ($rr = mysql_fetch_array(mysql_query($sql))){echo $rr["id"];}}
Второй вариант:

Код: Выделить всё

$sql =mysql_query( "SELECT * from qwerty ..."); if (mysql_fetch_assoc($sql)) {while ($rr = mysql_fetch_array($sql)){echo $rr["id"];}}
Получается что в строке $sql = mysql_query( "SELECT * from qwerty ..."); мы сразу узнаем данные с таблицы или мы их узнаем каждый раз когда вставляем $sql в mysql_fetch_assoc() и mysql_fetch_array()?
Evegeniy
Сообщения: 51
Зарегистрирован: 21 фев 2013, 16:49

Re: Запросы mySQL

Сообщение Evegeniy »

Второй вариант конечно же лучше! В первом варианте ты каждый раз клепаешь запрос к mysql.
И вообще ты пробовал запускать эти варианты?
Аватара пользователя
tofido
Сообщения: 113
Зарегистрирован: 02 май 2012, 15:44

Re: Запросы mySQL

Сообщение tofido »

Спасибо!)
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Запросы mySQL

Сообщение Serge »

Дак первый то и работать не будет

УПД: Да и второй тоже сомнителен. "if (mysql_fetch_assoc($sql)) {" - зачем?

УПД2: Еще раз глянул. Вот так вот правильнее будет:

Код: Выделить всё

$result = mysql_query($query);if(mysql_num_rows($result) != 0){    while($row = mysql_fetch_array($result))
IndieGD
Сообщения: 124
Зарегистрирован: 28 май 2013, 19:20

Re: Запросы mySQL

Сообщение IndieGD »

tofido, если у вас проверка на результат, только для того чтобы запустить или не запустить цикл, то она ни к чему. Если запрос не вернет результатов, то цикл так и так не сделает ни одной итерации. То есть достаточно просто этого:

Код: Выделить всё

$result = mysql_query("SELECT * FROM qwerty");while ($array = mysql_fetch_assoc($result)) print_r($array);
Ответить