- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
$max_Id_sql = mysql_query ( "SELECT max(obj_id) FROM objs" ); //obj_id в БД примерно такие: 1, 2, ..., 70, 80, 124, 4101, 4162, 4931
$row = mysql_fetch_row ( $max_Id_sql );
for($i = 0; $i <= $row [0]; $i ++) { //здесь получаем 4932 прохода, из них нам нужны не более 80 штук
if (array_key_exists ( $i, $sizes )) { //массив sizes содержит от 1 до 80 элементов
if ($sizes [$i]) { //видимо, автор не знал про foreach
...
$result = mysql_query ( "SELECT obj_name,obj_size,obj_parent FROM objs WHERE obj_id='$i'" );
//Для каждого $i выполняется отдельный SQL-запрос. Хорошо хоть, что он не 4932 раза выполняется в этом цикле
$objArray = mysql_fetch_array ( $result );
...
}
}
}
Комментарии мои.
Код - неизвестного программиста, работавшего до меня.
guest 27.06.2009 22:57 # 0
шедевр.
просто "SELECT ... FROM objs ORDER BY obj_id" это не для нас...
guest 28.07.2009 15:00 # 0
если в $sizes не может содержать значения с ключом больше чем max(obj_id) то выполнение первого запроса вообще ненужно
в ином случае можно рассмотреть вариант всего с 2 SQL запросами
Yari 25.08.2021 21:07 # 0