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

GTI

Well-Known Member
Joined
Jan 1, 2011
Messages
1,365
Reaction score
423
Имам база данни 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";
}
}
 
Никога не съм позлвал 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:
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
select * from table WHERE ID > 1 AND ID <= 10 order by rand() limit 1

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

Къде :D

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