Изкарване на random ID от базата

GTI

Well-Known Member
Joined
Jan 1, 2011
Messages
1,364
Reaction score
422
Имам база данни db в която има таблица table. В table има 15 реда и всеки ред си има ID като на ред 1 IDто е 1 и така до ред 15,на който IDто е 15. Искам да изкарам в браузъра едно random ID от 1 до 10,не то от 1-15.

Ползвам следния код,който изкарва едно случайно ID и както се предполага иска да изкарва от 1во до 10то.

$sql = "select * from table order rand() limit 1";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
echo "You won" . '<br><br>';
while ($row = mysqli_fetch_assoc($result)) {
echo "" . $row["skin"] . '<br>' . '<img src="' . $row['img'] . '">' . "<br>";
}
} else {
echo "error";
}
}
 

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
821
Никога не съм позлвал mysqli, но логиката мисля че е една може би синтаксиса различен, не се сърди ако не бачка :)
Има доста начини за това

PHP:
$winner = rand(1,10);  // като искаш му забии и инт или флоор , макар че няма акк да върне дроб

$sql = "select * from table where id = '{$winner}' ";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
echo "You won" . '<br><br>';
while ($row = mysqli_fetch_assoc($result)) {
echo "" . $row["skin"] . '<br>' . '<img src="' . $row['img'] . '">' . "<br>";
}
} else {
echo "error";
}
}

////////////////////////////////////////////////////////////////////////////////
//това е само за 1 random id ако искаш 10-те като да са рандъм може с 

$rows = array (1,2,3,4,5,6,7,8,9,10);
$shifle = shuffle($rows); 
foreach ($shifle as $unique){
    $win .= "or id=".$unique;
}
 //и куерито ти става :
$sql = "select * from table where id = '{$winner}'  '{$win}' ";

//това не съм го тествал да знаеш писах го направо така, че провай
 
Last edited:

pafa7a

Well-Known Member
Joined
Jul 9, 2009
Messages
1,398
Reaction score
814
select * from table WHERE ID > 1 AND ID <= 10 order by rand() limit 1

Учудвам се как ти работи скрипта като има синтактична грешка в него :D

@r00tme - mysqli е бъдещето -> mysql е депрекейтнат още от PHP 5.5.0, а в момента сме на PHP 7.0.2
 
Last edited:
  • Like
Reactions: dota-sdso

GTI

Well-Known Member
Joined
Jan 1, 2011
Messages
1,364
Reaction score
422
select * from table WHERE ID > 1 AND ID <= 10 order by rand() limit 1

Учудвам се как ти работи скрипта като има синтактична грешка в него :D

Къде :D

PS: Видях,явно съм копирал малко повече от колкото трябва.
PS2: Работи,пафа още колко пъти трябва да ти благодаря? :D
 
Last edited:

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
821
select * from table WHERE ID > 1 AND ID <= 10 order by rand() limit 1

Учудвам се как ти работи скрипта като има синтактична грешка в него :D

@r00tme - mysqli е бъдещето -> mysql е депрекейтнат още от PHP 5.5.0, а в момента сме на PHP 7.0.2

А, аз хабер си нямам човеко. Пиша някакви неща на php със стар синтаксис, даже обектно не мога. Но може да го разгледам това mysqli, макар, че то като не ти е работа, а хоби общо взето няма значение какви са тенденциите, а да си правиш кефа. По принцип чак толкова не ми се задълбава, но може да погледна за обща култура.

Междо другото стана ли нещо с тоя скрипт дето писах или гърми и той..
 
Last edited: