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

GTI

Well-Known Member
Joined
Jan 1, 2011
Messages
1,359
Reaction score
413
Имам база данни 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";
}
}
 

r00tme

r00tme
Joined
Apr 30, 2014
Messages
543
Reaction score
777
Никога не съм позлвал 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,361
Reaction score
776
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: r00tme

GTI

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

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

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

r00tme

r00tme
Joined
Apr 30, 2014
Messages
543
Reaction score
777
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: