Jump to content

hamsterhomka

Newbie
  • Posts

    6
  • Joined

  • Last visited

hamsterhomka's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. А, если кол-во записей присоединяется, то тогда прошу прощения, простой join не подойдёт. ch. - это псевдоним таблицы, для более лаконичной записи, он объявляется сразу после полного имени, вслед за FROM/JOIN. Тьфу, я похоже вам заведомо нерабочий запрос предложил, там ошибки)) Второпях писал. А Int и промолчал)) Вот что-то такое, мне кажется должно быть: SELECT ch.*, COUNT(`ach`.`achievement`) AS `counter` FROM `characters` `ch`, `character_achievement` `ach` WHERE 1 AND `ch`.`deleteDate` IS NULL AND `ach`.`guid` = `ch`.`guid` ORDER BY `counter` DESC Что тут происходит? 1. Выбираем все значения из characters, при условии .`deleteDate` IS NULL 2. считаем кол-во строк в таблице `character_achievement` с achievement при с одинаковыми guid (как я понимаю, тут можно любой столбец считать, т.к. нам кол-во строк же надо, а значения столбцов безразличны?) 3. сортировка по кол-ву 4 нужное вам значение в counter Спасибо, за подробное объяснение, но что-то не выводятся все результаты, а только один, возможно я что-то не так сделал вот страница http://wow-moon.dyndns.biz/content/index.php?page=top10achievement вот код <? include("../modules/conf.php"); mysql_select_db(characters,mysql_connect($nameSERVER,$nameUSER,$passUSER)); function top10achievement() { $sm_read = file("achievements.html"); $sm_read = implode("",$sm_read); $result_index = mysql_query(" SELECT ch.*, COUNT(`ach`.`achievement`) AS `counter` FROM `characters` `ch`, `character_achievement` `ach` WHERE 1 AND `ch`.`deleteDate` IS NULL AND `ach`.`guid` = `ch`.`guid` ORDER BY `counter` DESC"); $myrow_index = mysql_fetch_array($result_index); preg_match("/\[_repeat\](.*?)\[_repeat\]/s",$sm_read,$div_menu); do { $edd_tamp = $div_menu[1]; $edd_tamp = str_replace("[_src_faction]",$img_src_faction,$edd_tamp); $edd_tamp = str_replace("[_src_race]",$img_src_race,$edd_tamp); $edd_tamp = str_replace("[_src_class]",$img_src_class,$edd_tamp); $edd_tamp = str_replace("[_name]",$myrow_index[name],$edd_tamp); $edd_tamp = str_replace("[_achievements_n]",$myrow_index[counter],$edd_tamp); $disp .= $edd_tamp; } while($myrow_index = mysql_fetch_array($result_index)); $disp = preg_replace("/\[_repeat\].*?\[_repeat\]/s",$disp,$sm_read); return $disp; } ?>
  2. и в какой переменно содержится значение нужное мне?
  3. Спасибо большое за ответ, а что означают приставки вида ".ch."??? И нужна сортировка по кол-ву значений achievement тоесть по mysql_num_rows от achievement
  4. Этот код заменят ключевые строки, такие как [_name] в шаблоне на значения из БД. Нужно чтобы строки заменялись по сортировке от большего к меньшему [_achievements_n]
  5. Здравствуйте, уважаемые программисты. У меня есть код: <? include("../modules/conf.php"); mysql_select_db(characters,mysql_connect($nameSERVER,$nameUSER,$passUSER)); function top10achievement() { $sm_read = file("achievements.html"); $sm_read = implode("",$sm_read); $result_index = mysql_query("SELECT guid,totalKills,name,race,gender,class,deleteDate FROM characters WHERE deleteDate IS NULL"); $myrow_index = mysql_fetch_array($result_index); preg_match("/\[_repeat\](.*?)\[_repeat\]/s",$sm_read,$div_menu); do { $guid = $myrow_index[guid]; $result_a = mysql_query("SELECT achievement FROM character_achievement WHERE guid='$guid'"); $achievement_n = mysql_num_rows($result_a); $achievement_n .= "/1058"; $edd_tamp = $div_menu[1]; $edd_tamp = str_replace("[_src_faction]",$img_src_faction,$edd_tamp); $edd_tamp = str_replace("[_src_race]",$img_src_race,$edd_tamp); $edd_tamp = str_replace("[_src_class]",$img_src_class,$edd_tamp); $edd_tamp = str_replace("[_name]",$myrow_index[name],$edd_tamp); $edd_tamp = str_replace("[_achievements_n]",$achievement_n,$edd_tamp); $disp .= $edd_tamp; } while($myrow_index = mysql_fetch_array($result_index)); $disp = preg_replace("/\[_repeat\].*?\[_repeat\]/s",$disp,$sm_read); return $disp; } ?> И мне нужно, чтобы выводимые строки сортировались по $achievement_n. Подскажите пожалуйста как это сделать.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy