Bedingungswirrwarr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bedingungswirrwarr

    Hi !!!

    Ich versuche gerade eine Matchingfunktion zu programmieren und verzweifle schon am gedanklichen Ansatz für das SQL-Statement ... *seufz*

    Ich habe eine Tabelle mit folgenden Spalten:

    id (autoincrement)
    user_id, int
    bild_id, int
    bewertung, int

    In der Spalte user_id steht der Benutzer, der für das bild bild_id bisher mit folgender bewertung gevotet hat

    Nun kann ein user für alle Bilder eines anderen users voten. zu welchem Nutzer die jeweilige Bild_id gehört, lasse ich mir per Inner Join auf eine andere Tabelle ermitteln

    Wie kann ich in dem abfragestatement nun nur das von dem anderen Nutzer am besten bewertete Bild eines jeweiligen Nutzers ausgeben lassen ??

    Yeah !

  • #2
    Wie kann ich in dem abfragestatement nun nur das von dem anderen Nutzer am besten bewertete Bild eines jeweiligen Nutzers ausgeben lassen ??
    drück dich doch bitte etwas klarer aus. wer ist der jeweilige benutzer? der der gerade betrachtetm oder der, zu dem das bild gehört? und wie erfolgt die bewertung? über zahlenwerte?
    wenn man ein problem nicht lösen kann, dann muß man es eben umgehen!

    Kommentar


    • #3
      Re: Bedingungswirrwarr

      Original geschrieben von DaGuertliz
      Wie kann ich in dem abfragestatement nun nur das von dem anderen Nutzer am besten bewertete Bild eines jeweiligen Nutzers ausgeben lassen ??

      Nun, du kannst schrittweise vorgehen:
      - die voting aufsummieren
      - gruppieren nach bild_id
      - per join mit userTabelle erhältst du voting per userBild
      - Max bestimmen
      Alles zusammen bekommst du das gewünschte Ergebnis.

      Kommentar


      • #4
        Code:
        $temp=	"SELECT vopi.user_id AS user, vopi.votes, vopi.punkte, ";
        $temp.=		"((pvt.punkte*100)/pvt.anz_votes) AS bewertung, pvt.user_id AS origin, pvt.anz_votes, ";
        $temp.=		"l.benutzer, l.************ ";
        $temp.=		", ((SUM(pvt.punkte)*100)/SUM(pvt.anz_votes)) as bua ";
        $temp.=		", ((SUM(vopi.punkte)*100)/SUM(vopi.votes)) as voa ";
        $temp.=	"FROM picvotestat pvt ";
        $temp.=	"INNER JOIN votingpics vopi ";
        $temp.=	"USING (vopi_id) ";
        $temp.=	"INNER JOIN login l ";
        $temp.=	"USING (user_id) ";
        $temp.=	"WHERE pvt.user_id = '".$_SESSION['user_id']."' ";
        $temp.=	"AND pvt.anz_votes > 10 ";
        $temp.=	"AND l.************ = '".$_SESSION['vote************']."' ";
        $temp.=	"GROUP BY user ";
        $temp.=	"HAVING bua >= 50 ";
        $temp.=	"AND bua >= (voa+5) ";
        $temp.=	"ORDER BY bua DESC";
        So, nach Stunden des rumbastelns *gg* habe ich es fertig gebracht, daß er mir folgendes ausgibt:

        Alle Nutzer (l.benutzer), für die ich mit mehr als 50 % gestimmt habe, die meinem anvisierten Geschlecht entsprechen und die ich besser bewerte, als der Durchschnitt es tut ...

        Wie kann ich in der Abfrage jetzt aber einbauen, daß er mir von denen, die er mir jetzt noch anzeigt nur die anzeigt, die mich mit mehr als 50 % und mehr als meiner allgemeinen Bewertung bewerten ? *grübel* ?!?
        Yeah !

        Kommentar

        Lädt...
        X