Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit ORDER
Ich habe folgendes Problem:
Ich will aus einer MySQL-Tabelle die Felder banner1, banner2, banner3, banner4, banner5 WHERE id = '$sponsorid' (siehe code) abfragen und eines davon dann per zufall auswählen. soweit so gut - aber wie kann ich dann das ergebnis, das per zufall ausgewählte ergebnis speichern?
$query = mysql_query("SELECT banner1, banner2, banner3, banner4, banner5 FROM addsponsor WHERE id = '$sponsorid' ORDER BY RAND() LIMIT 1");
while ($row = mysql_fetch_assoc($query)) {
//Code zum speichern
}
Speichern? Was meinst du damit?
na ja, halt das ergebnis in einer variable speichern, so wie bei einer normalen abfrage:
$query = mysql_query("SELECT zielurl FROM addsponsor WHERE id = '$id'");
while ($row = mysql_fetch_assoc($query)) {
$zielurl = $row[zielurl];
}
du hast dir doch die Antwort bereits selber gegeben!
ja, dass das so in etwa aussieht, war mir schon klar. aber wie?
so?
$query = mysql_query("SELECT banner1, banner2, banner3, banner4, banner5 FROM addsponsor WHERE id = '$sponsorid' ORDER BY RAND() LIMIT 1");
while ($row = mysql_fetch_assoc($query)) {
$banner1 = $row[banner1];
$banner2 = $row[banner2];
$banner3 = $row[banner3];
usw.,
oder nur:
$query = mysql_query("SELECT banner1, banner2, banner3, banner4, banner5 FROM addsponsor WHERE id = '$sponsorid' ORDER BY RAND() LIMIT 1");
while ($row = mysql_fetch_assoc($query)) {
$banner1 = $row[banner1];
????
sorry, aber ich stehe im Moment echt auf dem Schlauch.
Was steht denn in Banner1 bis Banner5 drin?
Möchtest du einen zufälligen Banner aus diesen 5 ausgeben?
in jedem feld steht die url eines banners drinnen. von diesen 5 bannercodes möchte ich jetzt einen in einer variable speichern.
das hast du doch schon mit $row[banner1]; bis $row[banner5]; !!
einer von uns beiden ist hier definitiv zu müde.
:)
natürlich habe ich (mind.) einen schon gespeichert, aber ich will eben
a) NUR einen speichern und
b) nur einen per ZUFALL speichern, also bei jedem aufruf einen anderen!!!
Original geschrieben von panta
einer von uns beiden ist hier definitiv zu müde. ...
Das bin mit Sicherheit ich :)
Aber schau dir doch mal das Tutorial an Gewichtete Abfragen SQL-Abfragen (http://www.php-resource.de/tutorials.php?show=gewichteteabfragen.php)
gruß
berni
na ja, meine fragestellung war sicher auch nicht ganz korrekt...:)
ich habe das ganze jetzt etwas unellegant gelöst, aber es müsste theoretisch gehen:
srand((double)microtime()*1000000);
$rand = rand (1, 5);
dann:
$abanner = "banner".$rand; //Geht das???
und rufe dann entsprechend ab.
was mich jetzt interessieren würde: fällt dir noch was besseres ein, bzw. funktioniert das:
$abanner = "banner".$rand;
dann würde ich mysql_fetch_row (http://www.php-resource.de/manual.php?p=function.mysql-fetch-row) verwenden
mit $row[$rand] !
tschuldigung, dass ich dich mit meinen frage so nerve, aber ich bin noch am lernen :)
würde der komplette befehl also dann so lauten?
$query = mysql_query("SELECT banner1, banner2, banner3, banner4, banner5 FROM addsponsor WHERE id = '$sponsorid' ORDER BY RAND() LIMIT 1");
while ($row = mysql_fetch_assoc($query)) {
$banner1 = $row[$rand]
}
$query = mysql_query("SELECT banner1, banner2, banner3,
banner4, banner5 FROM addsponsor WHERE id = '$sponsorid' ORDER BY RAND() LIMIT 1");
$row =mysql_fetch_row ($query)
srand((double)microtime()*1000000);
$rand = rand (0, 4);
echo $row[$rand];
ob das so $row[$rand]; funktioniert habe ich selber noch nicht getestet.
gruß
berni
Vielen Dank!
Wenn man nach
$row =mysql_fetch_row ($query)
noch ein ';' setzt, funktioniert alles perfekt :)
*umarm*
freut mich! :)
gruß
berni
|
|