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

    +151.4

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    CREATE TABLE `pm_keywords` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `keyword` varchar(255) default NULL,
    ....
      PRIMARY KEY  (`id`),
      UNIQUE KEY `uniq_keyword` (`keyword`),
    ) ;"
    
    
    
    
    
    
    
    	$sql = "SELECT keyword 
    		FROM pm_keywords 
    		WHERE active = 0
    		ORDER BY rand()
    		LIMIT ".intval($newKeywords);
    	$q = mysql_query($sql);
    
    	$keywords = array();
    	while ($r = mysql_fetch_assoc($q)) {
    		$keywords[] = mysql_real_escape_string($r['keyword']);
        }
        $newKeywordsActual = count($keywords);
    	$sql = "UPDATE `pm_keywords` SET
      			active = 1, 
    			lastupdate = '".date('Y-m-d H:i:s')."'
    		WHERE keyword IN ('".implode("','", $keywords)."')
    		LIMIT ".$newKeywordsActual;
    	mysql_query($sql);

    WHERE keyword IN ('".implode("','", $keywords)."')

    Запостил: zxm, 25 Февраля 2010

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

    • Что смутило?
      Ответить
      • Ну как бы id в базе не просто так.
        Ответить
        • Большой разницы нет, keyword как бы уникальное. Может дальше используется этот массив, так что смысла заводить два массива нет (один с id, второй с keyword)
          Ответить
    • Тут ещё проверка на пустой массив нужна. Ибо если массив пустой, то будет WHERE keyword IN (''), а это ошибка SQL-синтаксиса.
      Ответить
      • Разве? Неужели в скобках не может быть пустой строки?
        Ответить
        • Пустую строку проглядел ) Ошибкой является WHERE keyword IN ()
          Ответить
          • Но здесь такой SQL ошибки не будет. Ошибка будет только в не правильно обновленных данных (если есть данные с пустым keyword)
            Ответить
    • Нах тут mysql_real_escape_string?
      Ответить

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