ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
283
283
EMPFEHLEN
-
Hallo,
ich habe eine Datenbank mit Bilder und der dazugehörigen "UserID":
id | user_id | photo
- UserID: 5
1 | 5 | a.jpg
2 | 5 | b.jpg
3 | 5 | c.jpg
UserID: 7
4 | 7 | d.jpg
5 | 7 | e.jpg
6 | 7 | f.jpg
Nun geb ich die Fotos aus:
Nun zu meinem Problem:PHP-Code:$res = mysql_query("SELECT * FROM `photos`");
while($row = mysql_fetch_array($res)){
$photo_list = "<img src=\"upload/images/$row[photo]\">";
}
Ich möchte nicht alle Fotos ausgeben sondern immer nur 1 Foto pro Benutzer.
Bei dem Beispiel dürfen also nur die 2 Fotos ausgegeben werden:
1 | 5 | a.jpg
4 | 7 | d.jpg
Wie mach ich das am besten?
MfG proloser
-
Hi,
ich würde in der while-Schleife eine Abfrage einbauen ob zu der User-Id schon ein Bild verarbeitet wurde. Also in etwa so:
Damit das so funktioniert muss das Result-Set nach den User-IDs sortiert sein. Ansonsten muss man die alten User-IDs in ein Array schreiben und immer Abfragen ob die aktuelle User-ID schon im Array drin steht.PHP-Code:$alte_id = 0;
$res = mysql_query("SELECT * FROM `photos`");
while($row = mysql_fetch_array($res)){
// Bild nur ausgeben wenn die User-Id noch nicht dran war
// es kann also auch noch kein Bild ausgegeben worden sein
if( $alte_id != $row['userid'] )
{
$photo_list = "<img src=\"upload/images/$row[photo]\">";
}
$alte_id = $row['userid'];
}
mfg.Fide
-
Das problem ist damit ich es nicht nach der UserID sortieren kann, hab jetzt mit dem Array versucht aber komm da nicht ganz klar.
Könntest du mir das noch etwas genauer erklären ...
-
Dazu gibt es die Funktion "in_array( )".
Es müsste dann in etwas so aussehen:
Hier ist die Funktion erklärt:PHP-Code:$alte_id = array();
$i = 0;
$res = mysql_query("SELECT * FROM `photos`");
while($row = mysql_fetch_array($res)){
if( !(in_array( $row['userid'], $alte_id )) )
{
$photo_list = "<img src=\"upload/images/$row[photo]\">";
}
$alte_id[$i] = $row['userid'];
$i++;
}
http://de.php.net/in_array
mfg.Fide
-
Vielen Dank,
funktioniert perfekt!
-
Wus? ... Das kannst du SQL auch erledigen lassen:
Dabei wurde immer das erste genommen.Code :1
SELECT `userID`, `imageSrc` FROM `table` GROUP BY `userID`
Oder, wenn du ein zufälliges pro Benutzer haben willst:
Code :1
SELECT * FROM (SELECT `userID`, `imageSrc` FROM `table` ORDER BY RAND()) AS RandTable GROUP BY `userID`
Die Bezeichnungen der Felder musst natürlich auf deine anpassen.Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
Noch perfekter, danke
Ähnliche Themen
-
Foto druckbereit auf einer Grafik anzeigen
Von Darian im Forum Sonstige Grafik-ProgrammeAntworten: 1Letzter Beitrag: 29.07.10, 17:35 -
Daten aus mehreren Tabellen über Joins anzeigen
Von thinkpad im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 10.04.08, 13:08 -
GridView´s in mehreren Sprachen anzeigen
Von keks1984 im Forum .NET Web und KommunikationAntworten: 2Letzter Beitrag: 20.09.07, 09:08 -
SQL-Abfrage: Mitglieder die keinen Beitrag bezahlt haben anzeigen lassen
Von aro69 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.03.07, 09:42 -
Wie retuschiert man die Foto-Übergange in einem Panorama aus mehreren Bildern?
Von scrotum im Forum PhotoshopAntworten: 13Letzter Beitrag: 10.01.05, 12:31





Zitieren
Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen