1. PHP / Говнокод #716

    +163.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 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, 15 Марта 2009

    Комментарии (3) RSS

    • Darquan0:
      шедевр.
      просто "SELECT ... FROM objs ORDER BY obj_id" это не для нас...
      Ответить
    • dead_star:
      если в $sizes не может содержать значения с ключом больше чем max(obj_id) то выполнение первого запроса вообще ненужно

      в ином случае можно рассмотреть вариант всего с 2 SQL запросами
      $max_sql = mysql_query("SELECT max(obj_id) FROM objs");
      list($max) = mysql_fetch_row($max_sql);
      ksort($sizes);
      $select = array();
      foreach ($sizes as $id=>$size){
       if ($id>$max) break;
       if ($size) $select[] = "obj_id=".intval($id);
      }
      if (count($select)){
       mysql_query("SELECT obj_name, obj_size, obj_parent FROM objs WHERE ".implode(" OR ", $select));
      }
      Ответить
    • Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» – тоже, а тут, к матери родной ревнует!
      Ответить

    Добавить комментарий