Hi,
Ja von mir aus hier ist der Code, aber der ist korekt, zumal alles unter php3 einwandfrei lief... und an der mysql version is nix geändert worden.
BTW und auch für's Archiv: PHP3 und PHP4 sind mittlerweile fast schon zwei verschiedene Programme, nicht nur zwei aufeinanderfolgende Versionen. die 3er Version ist unter der GPL gestellt, die 4er unter eine Art BSD-Lizenz aber nicht zur gPL kompatibel. Die 3er wird auch ganz normal weiterentwickelt, ist ein regulärer Fork.
wie bereits schonmal erwähnt momentan php4 und es geht nicht... immer der selbe artikel, hab mir dat script jetzt knapp 10.000 mal aufrufen lassen: immer der selbe artikel, hab das ergebnis logen lassen ebenfalls in eine mysqltabelle ergebniss: 10.031 Aufrufe : 10.031 Artikel mit ID 531
Code:
$result_neuerartikel = @mysql_query("SELECT * FROM artikel WHERE artikel!='$nowartikel' ORDER BY rand()");
vorher wird ganz normal meine datenbank conected..
So, das ist zwar immer noch recht sparsam an Information, aber immerhin mehr als nix. Da das einzige, was Du gewechselt hast, die PHP Version ist, ist nachzuschauen, ob da mysql_query() noch die gleiche Syntax hat. Außerdem wird gegen eine PHP-Variable im Query verglichen, wird die bei mysql_query() in PHP4 immer noch genauso aufgelöst? Stimmt das Quoting?
Kontrollier alles und komm dann wieder falls das Dingen unerwarteterweise immer noch nicht funktionieren sollte.
so short
Christoph Zurnieden
PS:
Da kein "kryptographisch harter" Zufall benötigt wird, kannst Du ja mal einen linearen Kongruenzgenerator probieren. Schweres Wort, einfache Iterations Formel:
$x_i = ax_{i-1} + b mod m$
Für die Implementation ist eine kleine Umstellung brauchbar, das Ergebniss sind dann zwei Zeilen
/* $seed muß global sein */
function lkg($seed, $a, $b,$N){
$result = ($seed * $a + $b) % $N;
$seed = result;
}
Eine paar passende Parameter sind z.B.
a = 16807, b = 0, N = 2^31 -1 = 2147483647.
(Ja, der Startparameter für $seed ist ziemlich egal, würde die Zeit empfehlen)
Das ist für sowas eher zu empfehlen, da Du so die äußerst kostbare Systementropy nicht antastest. Wahrscheinlich ist es außerdem noch etwas schneller ;-)
CZ