2014-12-28 3 views
0

Привет, у меня есть поле в моей таблице, называемое процентом, но то, что я хочу сделать, - это показать только результат, основанный на проценте, т. Е. Если я установлю 10, он будет показывать результат в 10% случаев.Показать результат из%

вот моя база данных, которая является кодом базы данных Joomla в MySQL

 // Select the required fields from the table. 
     $query->select(
      'a.id, a.title, a.simulator, a.generation, a.quality, a.quantity, a.percentage, a.attribute, a.checked_out, a.checked_out_time, a.catid' . 
      ', a.state, a.access, a.created, a.created_by, a.version, a.ordering' 
     ); 

     $query->from('#__evolutionary_texture AS a'); 

     // Join over the users for the checked out user. 
     $query->select('uc.name AS editor') 
      ->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); 

     // Join over the asset groups. 
     $query->select('ag.title AS access_level') 
      ->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); 

     // Join over the species. 
     $query->select('category.title AS category_title') 
      ->join('LEFT', '#__categories AS category ON category.id = a.catid'); 

     $query->select('parent.title AS parent_title') 
      ->join('left', '#__categories AS parent ON parent.id=category.parent_id'); 

     // Join over the section. 
     //$query->select('section.title AS section_title') 
     // ->join('LEFT', '#__categories AS section ON section.id = a.catid'); 

     // Join over the users for the author. 
     $query->select('ua.name AS author_name') 
      ->join('LEFT', '#__users AS ua ON ua.id = a.created_by'); 

     $query->where('parent.title = ' . $db->quote($species)); 
     //echo "section = $section"; 
     $query->where('category.title = ' . $db->quote($section)); 

     // check where generation. 
     $query->where('a.generation = ' . $db->quote($generation)); 

     // check where simulator. 
     $query->where('a.simulator = ' . $db->quote($simulator)); 

     // Debug the query 
     //var_dump($db->replacePrefix((string) $query)); 

     // Set the query and load the result. 
     $db->setQuery($query); 

как то, что я пытаюсь сделать, это только показать текстуру на основе процентной доли, как эти данные импортируются в игру под название второй жизни

мое процентное поле прямо сейчас 0 - 100

+0

В чем проблема? – RST

+0

хорошо, я смотрю на подсчет качества, основанного на процентах на показе, например, обычном или редком и т. Д. И показываю результат, где я могу затем использовать массив для генерации данных для результата в запросе – user3153523

+0

Я бы получил список результатов, а затем использовал функция рандомизации php, взвешенная процентом, чтобы выбрать ее. – Elin

ответ

0

После анализа вашего кода/проблемы я могу предложить следующее.

  1. вам нужно хранить переменную random_no и times где-то, на сессии, Databse или уровня APPLIATION вар
  2. Значение random_no будет =array() of 100 int values from 1 to 100 randomly // Пример =array(23,15,67,98, ...., 5); // all 1-100 numbers once only
  3. значение times будет 0 первоначально и будет увеличиваться на 1 после каждого запроса. Когда значение достигнет 99, то затем оно будет 0 и пересчитайте значение random_no. // код в котором запрашивается база данных
  4. Теперь запустите запрос с условием: a.percentage >= $random_no[$times]

создающего $ randome_no массива:

$random_no=array(); 
for($i=1;$i<=100;i++){ 
    $random_no[]=$i; 
} 
shuffle($random_no); 

PHP shuffle

Над метода выберет записи percentage раз в случайном порядке

Смежные вопросы