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

    +160.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(isset($_POST['add_st']) && $_POST['add_st'] != false && $_POST['add_st'] != '')
    { 
    	if($res=mysql_query("select max(ordering) from category3 where category2=".$cat)) 
    		{
    			$ord=mysql_fetch_row($res);
    			$order=$ord[0]+1;
    		}

    $_POST['add_st'] - из формы с <input type='submit' name='add_st' value='Сохранить' />

    Я уж не говорю, что $order можно было сделать одним запросом

    Запостил: pasha, 16 Марта 2010

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

    • А просто isset($_POST['add_st']) уже не модно? И вообще это все что?
      Ответить
      • Это обавление товара ))
        Ответить
        • А вся мутотень с max(ordering) -- от незнания autoincrement?
          Ответить
          • А вот, кстати, и не факт... с чего вы решили, что order будет ключом ??? А вдруг это поле сортировки... т.е. автор вначале нашёл значение текущего максимального значения сортировки, и потом возможно будет добавлять новую запись с этим значением в поле ord, т.е. не автоинктимент!
            Ответить
            • И, кстати, писать запросы в виде
              ... WHERE category2=".$cat) небезопастно.
              лучше так ...WHERE category2='$cat' ");
              и $cat привести к целому типу предварительно...
              Ответить
              • А если $cat - безопасная переменная из глубин скрипта?
                Ответить
                • А если нет??? Люблю используя такие запросы убивать всю базу :)
                  'DELETE FROM table WHERE cat='.$cat
                  где $cat = '100 or true' типа такого...
                  Ответить
                  • Но этого мы уже не узнаем :)
                    Обычно в начале функции целочисленная переменная приводится к целому типу, чтобы на каждом шагу не писать intval
                    Ответить
    • vanished
      Ответить

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