Sammenhængen er, i den ene bliver der udskrevet nogle navne i en tabel, og den skal så yderligere sortere det i forhold til deres "seneste click", i en anden tabel.. Sådan ligesom, sidst online..
$get_friends = mysql_query("SELECT ven, dato, FROM tabel1 WHERE brugernavn = '$navn', sidsteclick FROM tabel2 WHERE brugernavn = 'ven' ORDER by settime DESC")or die(mysql_error());
tabel1 = tabel med ens venner man har tabel2 = selve tabellen hvor brugeren er oprettet, og deri er også en celle, som siger hvornår man sidst har bevæget sig på siden..
Så vil jeg gerne have at den skal udskrive alle de venner man har (kun hvor brugernavnet er det man er inde på), og det skal sorteres i, hvornår vennes sidst har bevæget sig på siden (tallet er bare i time()).
SELECT tabel1.* FROM tabel1 Left JOIN ( SELECT brugernavn, max(settime) AS senesteSettime FROM tabel2 GROUP BY tabel2 ) AS tabel2special ON tabel1.ven = tabel2special.brugernavn ORDER BY tabel2special.senesteSettime DESC
SELECT tabel1.* FROM tabel1 Left JOIN ( SELECT brugernavn, max(settime) AS senesteSettime FROM tabel2 GROUP BY brugernavn ) AS tabel2special ON tabel1.ven = tabel2special.brugernavn ORDER BY tabel2special.senesteSettime DESC
Tror jeg - Hvor skal det dette sættes ind i den; WHERE brugernavn = '$navn'
- det er til tabel2
Jeg har lavet den således: mysql_query("SELECT tabel1.* FROM tabel1 Left JOIN(SELECT brugernavn, max(settime) AS senesteSettime FROM tabel2 GROUP BY brugernavn) AS brugere ON tabel1.ven = brugere.brugernavn ORDER BY brugere.senesteSettime DESC")or die(mysql_error());
Okey, det er vel forståeligt at du ikke helt forstår hvad jeg mener, har også selv lidt svært ved at forklare det.. Men prøver nu alligevel:
- Jeg har en masse rækker i tabel1, hvor alle venner på siden står. - Så har jeg en tabel2 hvor brugerne er oprettet.. - Jeg vil udskrive alle vennerne som er tilknyttet til DEN bruger man er inde på ($navn). - Men ikke KUN udskrive såsom: SELECT ven, settime FROM tabel1 WHERE brugernavn = '$navn' - Den skal nemlig sortere det efter hvem der har det højeste tal, settime, fra tabel2..
Et settime et felt i tabel1 eller tabel2? I din lille sådan-skal-det-ikke-være SELECT er den i tabel1, men den er i tabel2 i din beskrivelse fra 10/09-2006 12:54:18.
Det er vidst mig (også) der kludrer i det nu.. Begge tabeller har en celle ved navn "brugernavn".. Jeg prøvede lige at lege lidt med det jeg ville have fat i, og jeg fandt selv ud af det sidste, så ingen problemer nu.. (:
Og, nårh ja, det jeg mente var: mysql_query("SELECT tabel1.* FROM tabel1 Left JOIN(SELECT brugernavn, max(settime) AS senesteSettime FROM tabel2 GROUP BY brugernavn) AS brugere ON tabel1.ven = brugere.brugernavn WHERE tabel1.brugernavn = '$navn' ORDER BY brugere.senesteSettime DESC")or die(mysql_error());
Ja, nu synes jeg at det begynder at hænge sammen :^)
mysql_query(" SELECT tabel1.* FROM tabel1 LEFT JOIN ( SELECT brugernavn, max(settime) AS senesteSettime FROM tabel2 GROUP BY brugernavn ) AS brugere ON tabel1.ven = brugere.brugernavn WHERE tabel1.brugernavn = '$navn' ORDER BY brugere.senesteSettime DESC ") or die(mysql_error());
... og et svar:
Forresten er dette ikke så meget et PHP spørgsmål. Egentligt burde det nok have været postet under Database-kategorien.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.