Страница 1 из 1

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

Добавлено: 24 июн 2013, 15:22
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()?

Re: Запросы mySQL

Добавлено: 24 июн 2013, 17:25
Evegeniy
Второй вариант конечно же лучше! В первом варианте ты каждый раз клепаешь запрос к mysql.
И вообще ты пробовал запускать эти варианты?

Re: Запросы mySQL

Добавлено: 24 июн 2013, 19:07
tofido
Спасибо!)

Re: Запросы mySQL

Добавлено: 24 июн 2013, 19:55
Serge
Дак первый то и работать не будет

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

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

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

$result = mysql_query($query);if(mysql_num_rows($result) != 0){    while($row = mysql_fetch_array($result))

Re: Запросы mySQL

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

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

$result = mysql_query("SELECT * FROM qwerty");while ($array = mysql_fetch_assoc($result)) print_r($array);