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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $varians_ids = array();
    $getvaluesvariants=mysql_query("SELECT  `id` FROM `values` group by `id`") or die(mysql_error());;
    while($valuesvariants = mysql_fetch_array($getvaluesvariants, MYSQL_ASSOC))
    {
    $varians_ids[]= $valuesvariants['id'];
    }
    mysql_free_result($getvaluesvariants)or die("Query failed: " . mysql_error());
    for ($i = 0;  $i < count($varians_ids); $i++)
    {
      $setvaluesnames = mysql_query("UPDATE `option_values` SET `option_value_ru` = (SELECT  `option_value_ru` FROM `values` WHERE `id` = '$varians_ids[$i]') WHERE  `id` = '$varians_ids[$i]'") or die(mysql_error());;
    }

    Наткнулся на этот шедевр. Отсутствие использования foreach кажется мелочью по сравнению с тем, как производится операция, которую можно сделать одним запросом:
    $setvaluesnames = mysql_query("UPDATE `option_values`, `values`
    SET
    `option_values`.`option_value_ru` = `values`.`option_value_ru`
    WHERE `option_values`.`id` = `values`.`id`") or die(mysql_error());

    P. S.: там еще в БД пишется пробел вместо пустой строки или NULL...

    Запостил: CRRaD, 20 Июля 2011

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

    • use PDO!
      Ответить
      • А mysqli чем хуже?
        Ответить
        • Плюсы pdo по сравнению с mysqli:
          1) Более продумана в плане ооп(моё субъективное мнение)
          2) Нет привязки к одному драйверу.
          3) Нет этих "?", можно красиво сделать ":name" :)
          Ответить
          • Зато mysqli побуждает выполнять s/mysql/mysqli/g, не читая документацию, после чего на форумах могут появляться новые темы «Пачиму не работает?», а здесь — новые говнокоды. Так же веселее!
            Ответить
    • в цикле запрос на апдейт, это конечно сильно ...
      Ответить

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