Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowy wynik
Forum PHP.pl > Forum > Bazy danych > MySQL
dragonballpj
Ma to wyświetlić losowy wpis z tabeli ale jakoś nie wyświetla sad.gif acha chciał bym wyświetlic dane z pola kategoria i tytul

Kod
$ile = mysql_num_rows(mysql_query('SELECT download FROM pliki4'));

$rand = rand(0,$ile);

$query = mysql_query('SELECT * FROM pliki4 LIMIT '.$rand.',1');

$dane = mysql_fetch_row($query);

   while($row = mysql_fetch_array($query)) {

      echo $row['kategoria'];

      echo $row['tytul'];

   }
spenalzo
Zeby wyciągnąć losowy to zrób tak:
[sql:1:80245d8b82]SELECT * FROM pliki4 LIMIT 1 ORDER BY RAND()[/sql:1:80245d8b82]
i bedziesz miał jeden losowy wynik.
dragonballpj
a byś tak to wstawił w kod php?? bo ja zabardzo kumaty nie jestem
spenalzo
[php:1:6ba63cc9bc]<?php
$query = mysql_query('SELECT * FROM pliki4 LIMIT 1 ORDER BY RAND()');
$row = mysql_fetch_array($query)
echo $row['kategoria'];
echo $row['tytul'];
?>[/php:1:6ba63cc9bc]
dragonballpj
niestety nic nie wyświetla sad.gif
spenalzo
[php:1:3059b59401]<?php
$query = mysql_query('SELECT * FROM pliki4 LIMIT 1 ORDER BY RAND()') or die(mysql_error());
$row = mysql_fetch_array($query)
echo $row['kategoria'];
echo $row['tytul'];
echo "<pre>";
print_r($row);
echo "</pre>";
?>[/php:1:3059b59401]

Co sieteraz pokazuje questionmark.gif
dragonballpj
Something is wrong in your syntax obok 'ORDER BY RAND()' w linii 1

Kod
<? OpenTable(); ?>

<B>Polecamy</B>

<? OpenTable2(); ?>

<?

$url = "localhost"; //adres bazy danych

$login = "root"; //nazwa użytkownika bazy danych

$haslo = "krasnal"; //hasło użytkownika bazy danych

$dbname = "mysql"; //nazwa bazy danych



mysql_connect($url,$login,$haslo);

mysql_select_db($dbname);



$query = mysql_query('SELECT * FROM pliki4 LIMIT 1 ORDER BY RAND()') or

die(mysql_error());  

$row = mysql_fetch_array($query);

echo $row['kategoria'];  

echo $row['tytul'];  

echo "<pre>";

print_r($row);

echo "</pre>";



?>



<? CloseTable(); ?>
FiDO
[sql:1:7911933ea4]SELECT *
FROM pliki4
ORDER BY RAND()
LIMIT 1[/sql:1:7911933ea4]
dragonballpj
działa ale jakoś ciągle losuje 1 wpis z 2 wpisów które są próbowałem z 50 razy co jest??
dragonballpj
Może by zliczyć ilość wpisów z tabeli i w ich zakresie wylosować liczbę tak jak tu na dole?questionmark.gif może ktoś to czai?

Kod
$jakat = losowa liczba



$zapytanie = "SELECT * FROM `pliki4` WHERE `download` LIKE '$jakat'";

$wykonaj = mysql_query($zapytanie);

while($wiersz = mysql_fetch_array($wykonaj))

{



echo "<B>".$wiersz['kategoria']."".$wiersz['tytul']."</B>";
scanner
Cytat
[sql:1:6b92ddc563]SELECT * FROM pliki4 ORDER BY RAND() LIMIT 1[/sql:1:6b92ddc563]
U mnie to działało wybornie. Sugeruję, żebys nie sprawdzał na dwu wpisach, bo to nawet nie jest wstęp do próbki kontrolnej. Dodaj wpisów kilka(naście) i zobacz, czy działa.
dragonballpj
hmmmmmmmm powiem tak działa na 5 wpisach biggrin.gif


jakie jest minimum wpisów??
scanner
Nie ma limitów.
Po prostu taki jest urok kazdego generatora liczb losowych. Im większa możliwość wyboru, tym bardziej losowe wyniki dostaniesz.
FiDO
Teoretycznie zadne, ale czym ich wiecej, tym latwiej wykluczyc powtarzanie sie jednego rekordu kilkakrotnie.

Pozatym wlasnie sprawdzilem na 2 rekordach i dziala bez problemu (na jakies 20 losowan rozklad byl prawie "fifty-fifty")
dragonballpj
miałeś szczęście że na 2 wpisach ci losowało normalnie ami niestety ni sad.gif ciągle jeden rekor pokazywało sad.gif
debian
Sory że odkopuje temat biggrin.gif ale wkoncu rozwiązałem ten problem
Kod
$query = mysql_query("SELECT * FROM tabela ORDER BY RAND() LIMIT 1") or die ("Błąd w zapytaniu");
    $row = mysql_fetch_assoc($query);
    echo $row['rekord'];
wtedy działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.