Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: MySQL - Anzeige und Sortierung

  1. #1
    Fortgeschrittene/r
    Registriert seit
    08.11.2007
    Beiträge
    174
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard MySQL - Anzeige und Sortierung

    Hallo leutz ...

    hab volgendes problem:
    auf meiner seite haben die user, die möglichkeit bilder anderer user zu
    bewerten. Die besten pics wernden in einer top liste angezeigt.
    die query sieht so aus:

    PHP-Code:
    $top=mysql_query("SELECT * FROM `foto`, `profil` WHERE profil.id=foto.user_id AND profil.sex=$sex AND foto.status=1 ORDER BY prozent DESC $zahl"); 
    da die user aber die möglichkeit haben mehrere pics hochzuladen,
    kommt es schon mal vor das von einem user nicht nur das beste bild
    gezeigt wird sondern alle die gut bewertet sind. jetzt ist meine idee jeden user nur einmal
    anzeigen zu lassen und zwar mit dem am höchsten bewerteten bild also hab ich die query so geänder:

    PHP-Code:
    $top=mysql_query("SELECT * FROM `foto`, `profil` WHERE profil.id=foto.user_id AND profil.sex=$sex AND foto.status=1 GROUP BY foto.user_id ORDER BY prozent DESC $zahl"); 
    mit group by! aber es kam anschließend nur mist raus der 4 palzierte war dann platz 1 und der, der die ersten drei ränge belegt hat war nicht mehr in den toplist zu finden...

    was mach ich da falsch wie kann ich meine idee realisieren?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Walerik (08.12.2008 um 17:19 Uhr)

  2. #2
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: MySQL - Anzeige und Sortierung

    also jetzt nur so als idee.. mach doch ne subquery.. in der holste dir das beste bild des users und das bauste dann in deine hauptquery ein..
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  3. #3
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    08.11.2007
    Beiträge
    174
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL - Anzeige und Sortierung

    acha ... und wie stelle ich das an?

  4. #4
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: MySQL - Anzeige und Sortierung

    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  5. #5
    SinnlosS
    Gast

    Standard AW: MySQL - Anzeige und Sortierung

    Mir fällt spontan eine Lösung ein, die aus Sicht der theoretischen Datenbankmodellierung zwar nicht optimal ist, aber konsequente Normalisierung ist in der Praxis halt bei weitem nicht immer sinnvoll.
    Leg dir eine zusätzliche Tabelle an, z.b. `user_toprated_pics`, primary key `user_id`, weitere Spalten `bild_id`, `rating`.
    Da kannst du ja auch immer nur die 10 (oder wieviel du brauchst) besten Ergebnisse reinsetzen.

    Damit hast du zwar eine zusätzliche Tabelle und ein wenig doppelte Datenhaltung, es lässt sich aber eine wunderbar einfache und schnelle Abfrage bauen.

  6. #6
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    08.11.2007
    Beiträge
    174
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL - Anzeige und Sortierung



    was subqueries sind weiß ich jetzt
    ... danke schon mal
    ... aber ich komm einfach nicht drauf wie es mit den subqueries realisieren soll
    ... mir qualmt der schedel

  7. #7
    SinnlosS
    Gast

    Standard AW: MySQL - Anzeige und Sortierung

    Ungetestet:
    Code:
    SELECT
    	MAX(f.rating) AS max,
    	p.id AS pid,
    	f.id AS fid,
    	...
    FROM
    	profil p,foto f
    WHERE
    	p.id=f.user_id
    ORDER BY
    	MAX(f.rating) DESC
    LIMIT 
    	0,10
    Von Subqueries würde ich abraten, besonders wenn es viele user und fotos werden wird das sehr langsam. Sollte man nur verwenden wenn es sich wirklich nicht vermeiden lässt.

  8. #8
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    08.11.2007
    Beiträge
    174
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL - Anzeige und Sortierung

    danke schon mal werde es morgen mal testen!
    aber ist momentan etwas über 5000 userfotos in der db und sollen nich mehr werden!
    aber werden maximal in den tops nur 30 bilder angezeigt!

  9. #9
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: MySQL - Anzeige und Sortierung

    Sorry, mein query ist blödsinn. SELECT MAX(...) gibt dir natürlich nur eine Reihe zurück, kA was mich da grad geritten hat

    Eine weitere Alternative wäre eine neu Spalte in `profil`: `top_foto_rating`
    Code:
    SELECT
        p.id AS pid,
        f.id AS fid,
        ...
    FROM
        profil p,foto f
    WHERE
        p.top_foto_rating=f.rating
        AND
        p.id=f.user_id
    ORDER BY
        p.top_foto_rating DESC
    LIMIT 
        0,30

  10. #10
    Fortgeschrittene/r
    Themenstarter

    Registriert seit
    08.11.2007
    Beiträge
    174
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: MySQL - Anzeige und Sortierung

    ja und wie soll der wert in der neuen tabelle gebildet werden?

    kurz zum vote system was:

    es stehen immer zwei fotos gegenüber im zufallsprinzip.
    die user entscheiden welches sie aktraktiver finden.
    der wert für die toplist wird gebildet aus anzahl der votings
    und der anzahl als gewonnen augengangener votings in prozent

Ähnliche Themen

  1. Anzeige von Werten aus MySQL abhängig vom aktuellen Datum
    Von PHPDummy im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 03.07.2007, 16:44
  2. Problem mit sortierung
    Von OJM im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 05.02.2007, 15:56
  3. mySQL Sortierung umdrehen
    Von Arkat im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 10.12.2006, 15:41
  4. Sortierung
    Von andi1804 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 15.09.2006, 00:37

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •