Avatar billede miyagidk Nybegynder
12. maj 2003 - 21:49 Der er 14 kommentarer og
1 løsning

probelmer citat script!

Har siddet og rodet med et citat script,
og det virker også!! Pånær at når jeg sletter noget fra tabellen, viser den et tom query på citat siden, sammen med de andre citater!

Koden:
$randomize="SELECT*FROM citat";
$randomize2=mysql_query($randomize);
$numrow=mysql_num_rows($randomize2);

$j=RAND()%$numrow+1;

$r="SELECT * FROM citat where ID='$j' LIMIT 1";
$r2=mysql_query($r);
while($r3=mysql_fetch_array($r2))
{


Hilfe?
Avatar billede Slettet bruger
12. maj 2003 - 21:58 #1
Det ser lidt rodet ud det der, hvorfor har du queryes?

Kan du ikke nøjes med det her:

$r="SELECT * FROM citat ORDER BY RAND(UNIX_TIMESTAMP) LIMIT 1";

$r2 = mysql_query($r);
$r3 = mysql_fetch_array($r2);
///her er lavet lidt om, der er ingen grund til at lave en while når du kun hiver et resultat ud
Avatar billede Slettet bruger
12. maj 2003 - 21:58 #2
jeg prøver lige igen:

Det ser lidt rodet ud det der, hvorfor har 2 du queryes?

;)
Avatar billede postndk Nybegynder
12. maj 2003 - 22:04 #3
SELECT * FROM citat ORDER BY RAND() LIMIT 1
Avatar billede Slettet bruger
12. maj 2003 - 22:08 #4
postndk> Det ville man umiddelbart tro ville virke, men har man en nyere MySQL vil den ikke randomize ret meget, man er nødt til at seede med noget først (her er NOW() eller UNIX_TIMESTAMP gode).
Avatar billede postndk Nybegynder
12. maj 2003 - 22:13 #5
el-barto> okay så er jeg det klogere.. takker
Avatar billede miyagidk Nybegynder
13. maj 2003 - 09:28 #6
Godt spm el-barto!
jeg har siddet og rodet med RAND() i lang tid og kunne ikke rigtig få det til at virke som jeg gerne ville! Så det du ser er lidt klippe klistre fra eksempler!
Avatar billede Slettet bruger
13. maj 2003 - 09:33 #7
oki...kan du få det til at virke nu?
Avatar billede miyagidk Nybegynder
13. maj 2003 - 09:47 #8
nope den gir flg. fejl: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/www/03/citat/index.php on line 11

Linie 11=$r3 = mysql_fetch_array($r2);
Avatar billede Slettet bruger
13. maj 2003 - 09:58 #9
Jamen det skal da også være sådan her (doh til mig)

SELECT * FROM citat ORDER BY RAND(UNIX_TIMESTAMP()) LIMIT 1
Avatar billede miyagidk Nybegynder
13. maj 2003 - 10:03 #10
hmm, ja men så har jeg problemet med at den kun skifter ca hver 15 gang!
Avatar billede Slettet bruger
13. maj 2003 - 10:05 #11
ok, jeg har lige testet lidt, og du kan prøve dette, det burde virke fint:

SELECT * FROM citat ORDER BY RAND(NOW() * ID) LIMIT 1
Avatar billede miyagidk Nybegynder
13. maj 2003 - 10:16 #12
he he, jeg er ked af det! :0P
det gir samme resultat hos mig.
den skifter men man skal have go tålmodighed!

:)
Avatar billede Slettet bruger
13. maj 2003 - 10:21 #13
Det er dælme noget hø det der RAND()...nu har jeg igen tjekket lidt:



$sql = "SELECT MIN(ID), MAX(ID) FROM citat";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

$id = rand($row[0],$row[1]);

$r = "SELECT * FROM citat WHERE ID>=$id LIMIT 1";
$r2 = mysql_query($r);
$r3 = mysql_fetch_array($r2);
Avatar billede miyagidk Nybegynder
13. maj 2003 - 10:31 #14
RAND() har givet mig meget sved på panden, men det ser sgu ud som om du har givet mig løsning!
Jeg takker mange gange for en KANON hjælp! :)
Laver du et svar så du kan få de point du har fortjent?
Avatar billede Slettet bruger
13. maj 2003 - 10:50 #15
Med glæde, så lærte jeg også noget i dag ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester