Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit ORDER [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit ORDER


 
panta
28-07-2002, 23:15 
 
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
}

 
Berni
28-07-2002, 23:29 
 
Speichern? Was meinst du damit?

 
panta
28-07-2002, 23:31 
 
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];
}

 
Berni
28-07-2002, 23:33 
 
du hast dir doch die Antwort bereits selber gegeben!

 
panta
28-07-2002, 23:41 
 
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];



????

 
Berni
28-07-2002, 23:46 
 
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?

 
panta
28-07-2002, 23:51 
 
in jedem feld steht die url eines banners drinnen. von diesen 5 bannercodes möchte ich jetzt einen in einer variable speichern.

 
Berni
28-07-2002, 23:59 
 
das hast du doch schon mit $row[banner1]; bis $row[banner5]; !!

 
panta
29-07-2002, 00:04 
 
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!!!

 
Berni
29-07-2002, 00:08 
 
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

 
panta
29-07-2002, 00:14 
 
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;

 
Berni
29-07-2002, 00:18 
 
dann würde ich mysql_fetch_row (http://www.php-resource.de/manual.php?p=function.mysql-fetch-row) verwenden
mit $row[$rand] !

 
panta
29-07-2002, 00:23 
 
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]
}

 
Berni
29-07-2002, 00:32 
 
$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

 
panta
29-07-2002, 00:42 
 
Vielen Dank!
Wenn man nach
$row =mysql_fetch_row ($query)
noch ein ';' setzt, funktioniert alles perfekt :)

*umarm*

 
Berni
29-07-2002, 00:51 
 
freut mich! :)
gruß
berni


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:25 Uhr.