[php] Zufallsbild

Moment, was genau willst du erreichen? Hab ich was überlesen, hast du was nicht geschrieben?

Du möchtest je Kategorie ein Zufallsbild haben oder wie? Was meinst du mit "nicht nach Kategorie sortiert"?
 
Naja ne also:

Ich habe eine Random.php
der möchte ich per ?catid=5 den wert der Kategorie übergeben..und dann sollen aus der Kategorie 5 zufallsbilder ausgegeben werden.
 
"Bilder" klingt für mich nach Mehrzahl.
Wieviele sollens denn werden?

Wenn du random.php?catid=23 aufrufst, holst du mit der Query momentan nur ein zufälliges Bild aus der DB.
Außerdem rufst du mysql_fetch_array() nur einmal auf!
Du erhälst damit nur einen Datensatz in dein Array. Das was du machen willst sieht so aus:

PHP:
$numPics = 12; // z.B. 12 Bilder
$query="SELECT * FROM pictures WHERE catID = $_GET[catid] ORDER BY RAND() LIMIT $numPics";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)) 
{
    // Je Schleifendurchlauf erhälst du einen weiteren Ergebnissatz.
    echo "<img src='$row[thumb]' alt='$row[beschreibung]' title='$row[beschreibung]' /><br>\n";
}

Damit du auch verstehst was du da eigentlich schreibst (ich bin mir da nicht so sicher ob das schon so ist), hier noch eine Erklärung der Query:

SELECT - Hole
* - alle Felder
FROM - aus
pictures - der Tabelle Pictures
WHERE - für die gilt
catID = $_GET[catid] - Feld catID = GET Variable catid, z.B. 5
ORDER BY - sortiere die Ergebnisse nach
RAND() - Funktion des MySQL Servers, die eine Zufallszahl zwischen 0.0 und 1.0 zurückgibt. Nach dieser wird dann sortiert
LIMIT $numPics - Beschränke die Ergebnisliste auf $numPics Ergebnisse


Die Verwendung von mysql_fetch_array() ist auch nicht sonderlich toll, weil du die Daten doppelt im Array hast, siehe:
PHP:
var_dump($array);
Verwende lieber mysql_fetch_assoc() oder mysql_fetch_row().
mysql_fetch_assoc() stellt die ein sog. assoziatives Array bereit, du kannst deine Spalten dann so ansprechen:
PHP:
$row['spaltenname']
mysql_fetch_row() stellt dir ein indiziertes Array bereit, du kannst deine Spalten dann so ansprechen:
PHP:
$row[0] //erste spalte, 1 für die 2, 2 für die tritte, etc...
Ich verwende am liebsten mysql_fetch_object(). Damit kannst du dann deine Results so ansprechen:
PHP:
$row->beschreibung
Aber das ist Geschmackssache. Am schnellsten (wenn auch nur marginal) ist mysql_fetch_row, aber das mal nur am Rande.
_assoc und _object sind gleichschnell.

Is jetzt ein halber Daten-aus-der-DB-holen Crashkurs geworden :)

HTH, Erazor
 
Ich danke dir erazor aber das problem ist das funzt weder mit der zahl 1 oder noch 5 :(
 
was heißt funktioniert nicht?
Das ist keine Fehlerbeschreibung. Gibts ne Fehlermeldung? Gibts nicht erwartete Ergebnisse? Gibts garkeine? Was genau funktioniert nicht? Muss ich dir alles aus der Nase ziehen?
 
naja es passiert das selbe wie immer.. zufallsbild ja aber nicht sortiert nach kategorie
 
Kanns sein, dass ich schwer von Begriff bin?
Kannst du bitte detailliert beschreiben was genau du erreichen willst?
 
Er will ein Zufallsbild einer bestimmten Kategorie auswählen. :p
 
@loopo: dann kannst du mir auch sicher erklären was bei quicksilver nicht funktioniert.
Schönen Tag noch!
 
Also besonders schlau werd ich aus deiner Beschreibung auch nich,
Schreib ma diue Adresse die du aufrufst, um zu sehen ob du die Variabeln richtig übergibst.

Und sag genau welche Fehler auftreten, dann können wir dir vielleicht helfen und dann entschuldige dich mal bei [UPS]Erazor ,denn ich denke er hat sich schon Mühe gegeben, da iss so ne Reaktion nich gerade nett
 
naaja ich rufe auf wie schon gesagt
random.php?catid=6

und fehler kommt keiner.. es wird halt nur das catid ignoriert und er gibt ein zufallsbild aus der gesamten table wieder
 
Hi,

um den Fehler erstmal grob einzugrenzen würde ich an deiner Stelle die Übergabe der Cat-ID in der Suchabfrage mittels $_GET[catid] durch einen festen Wert z.B. 5 ersetzen um zu sehen ob im allgemeinen bei der Übergabe der Variablen eventuell schon Probleme auftreten.

Gruß bbforce
 
Zuletzt bearbeitet:
@quicksilver: Wärst du so freundlich wenigstens deine gesamte random.php hier zu posten?
Die beschriebenen Codeschnipsel und Queries machen genau das was sie sollen.
 
Ich habs nun gefixt.. ich weiss nicht wodran es lag oder ka.. hab alles neu gemacht und nun geht es mit hilfe von einem bekannten :/ der Query ist nun bissel anders aber ok..

Danke an alle beteiligten
 
Zurück
Oben