[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильная выборка из бд и вывод
feodalisimus
Всем доброе время суток. Помогите, как сделать правильный запрос к бд и вывод, т.е на каждые 10, 100, 500 строк из таблицы bo_niks менять рандом числа, если не равно 10,100,500 то другой рандом

нужно примерно так, но это не правильно


$res = mysql_query("SELECT COUNT(pa) FROM `bo_niks` WHERE `pa` = '$pa'");
$row = mysql_fetch_row($res);
$total = $row[0];

if ($total == 10){
$num = mt_rand(5,10);
}
else if ($total == 100){
$num = mt_rand(20,30);
}
else if ($total == 500){
$num = mt_rand(40,50);
}
else $num = mt_rand(1,5);

А как правильно?
Эли4ка
для начала mysql на mysqli замените
Используйте для этого mysqli_num_rows
feodalisimus
Допустим и что дальше?
feodalisimus
Сделал так работает, т.е делает выборку

$bd->Query("SELECT pa FROM `bo_niks` WHERE `pa` = '$pa'");
if($bd->NumRows() > 0){
$row_cnt = $bd->NumRows();
printf("В выборке %d рядов.\n", $row_cnt);

/* закрытие выборки */
//$bd->close();

}

ряды посчитал, спасибо, а как рандом числа сделать как в неправильном примере?
Valick
switch ( (int)$bd->mRows() ) {
case 10:
$num = mt_rand(5,10);
break;
case 100:
$num = mt_rand(20,30);
break;
case 500:
$num = mt_rand(40,50);
break;
default:
$num = mt_rand(1,5);
}


_____________
Стимулятор ~yoomoney - 41001303250491
Valick
или вам нужно всю эту лабуду сделать одним запросом на уровне сурбд?

_____________
Стимулятор ~yoomoney - 41001303250491
miketomlin
Цитата (Эли4ка @ 7.10.2018 - 09:53)
Используйте для этого mysqli_num_rows

Нафиг? Чтобы жизнь медом не казалась что ли?
feodalisimus
вот полный код

$bd->Query("SELECT pa FROM `bo_niks` WHERE `pa` = '$pa'");
switch ( (int)$bd->NumRows) ) {
case 10:
$num = mt_rand(5,10);
break;
case 100:
$num = mt_rand(20,30);
break;
case 500:
$num = mt_rand(40,50);
break;
default:
$num = mt_rand(1,5);
}

Не правильно работает, при 10 строках в дб рандом $num = mt_rand(5,10);, потом ждем 100 строк и рандом $num = mt_rand(20,30); это не правильно, надо на каждые 10 строк, т.е при 10,20, 30 и т.д был рандом $num = mt_rand(5,10); а при строках 100,200 и т.д $num = mt_rand(20,30); вот.
Valick
пипец...

_____________
Стимулятор ~yoomoney - 41001303250491
feodalisimus
Большая проблема для специалистов кодеров?
Valick
Цитата (feodalisimus @ 7.10.2018 - 11:20)
Большая проблема для специалистов кодеров?

Это что? Вялая попытка школьника взять дядек на слабо? Крайне неудачная стратегия.

Ты хочешь увидеть решение, хотя даже не можешь нормально задание сформулировать или хотя бы подробно описать, что, как и зачем ты хочешь сделать.


_____________
Стимулятор ~yoomoney - 41001303250491
feodalisimus
Во первых я не школьник и на слабо не беру а спрашиваю, а слабо - это только ваш вывод, во вторых я правильно все сформулировал, при каждой 10 строке из бд рандом свой, при каждой 100 свой, в чем не правильность сформулированного вопроса не пойму.
Valick
Цитата
т.е на каждые 10, 100, 500 строк из таблицы bo_niks менять рандом числа

и
Цитата
при каждой 10 строке из бд рандом свой, при каждой 100 свой

совершенно разные вещи
в таком случае нужно в цикле while перебирать строки и привязать условия из первого поста к автоинкрементной переменной (точнее к делению по модулю этой переменной на 10 на 100 и на 500 соответвенно)
еще бы понять зачем всё это делается, возможно необходимого результата можно достичь совершенно иным способом
скажите хотябы зачем нужна переменная $num и как она будет использоваться в дальнейшем?

_____________
Стимулятор ~yoomoney - 41001303250491
feodalisimus
Сайт раздает бонусы (деньги) при получении бонуса $num = mt_rand(1,5); юзер получит 1-5 копеек, но за каждые 10,20....... бонусов которые он получит $num должен быть другой $num = mt_rand(10,50); за каждые 100,200......бонусов $num = mt_rand(100,500);500,1000....... бонусов $num = mt_rand(1000,5000); вот зачем, как это получить?
Valick
$bd->Query("SELECT pa FROM `bo_niks` WHERE `pa` = '$pa'");
if($bd->NumRows() > 0){
$a = 1;
while($row = $bd->fetch_assoc()){
$a++;
if($a % 10 == 0) .... и тд

}
$bd->close();
}

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.