dragonballpj
8.12.2003, 16:48:40
Ma to wyświetlić losowy wpis z tabeli ale jakoś nie wyświetla

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
8.12.2003, 16:49:54
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
8.12.2003, 17:03:12
a byś tak to wstawił w kod php?? bo ja zabardzo kumaty nie jestem
spenalzo
8.12.2003, 17:06:39
[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
8.12.2003, 17:26:35
niestety nic nie wyświetla
spenalzo
8.12.2003, 18:06:08
[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
dragonballpj
8.12.2003, 18:36:47
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(); ?>
[sql:1:7911933ea4]SELECT *
FROM pliki4
ORDER BY RAND()
LIMIT 1[/sql:1:7911933ea4]
dragonballpj
8.12.2003, 21:01:33
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
9.12.2003, 15:55:55
Może by zliczyć ilość wpisów z tabeli i w ich zakresie wylosować liczbę tak jak tu na dole?

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
9.12.2003, 16:52:46
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
9.12.2003, 17:03:49
hmmmmmmmm powiem tak działa na 5 wpisach
jakie jest minimum wpisów??
scanner
9.12.2003, 17:17:24
Nie ma limitów.
Po prostu taki jest urok kazdego generatora liczb losowych. Im większa możliwość wyboru, tym bardziej losowe wyniki dostaniesz.
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
9.12.2003, 17:36:33
miałeś szczęście że na 2 wpisach ci losowało normalnie ami niestety ni

ciągle jeden rekor pokazywało
debian
9.05.2009, 18:07:36
Sory że odkopuje temat

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.