Avatar billede spidr Nybegynder
04. august 2005 - 00:39 Der er 6 kommentarer og
2 løsninger

Sortere efter et andet udtræk.

Ok, jeg vil gerne skrive en tabel ud, men den skal sorteres efter hvem der har fået den bedste karakter og det står i en anden tabel..

$temp = mysql_query("SELECT SUM(vote) FROM Kodetip where idet = $id");

$result = mysql_fetch_row($temp);

$karakter = $result[0];
$karakter = $karakter / $Stemmer;
$karakter = round($karakter, 2);

Sådan finder jeg ud af hvem der har den bedste karakter.

mine tabeller:


CREATE TABLE Kodetip (
  id int(11) NOT NULL auto_increment,
  ip varchar(255) NOT NULL,
  idet int(9) NOT NULL,
  vote int(2) NOT NULL,
  PRIMARY KEY  (id)
);


CREATE TABLE Kodet (
  id int(9) NOT NULL auto_increment,
  Navn varchar(50) NOT NULL,
  Placering int(4) NOT NULL,
  Rating int(4) NOT NULL,
  Stemmer int(9) NOT NULL,
  MSN varchar(250) NOT NULL,
  Tekst longtext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Her er koden jeg skal skrive en tabel ud med alle brugere men sorteret på karakteren:


$query = mysql_query("select * from Kodet order by $sort desc limit $i,$delt") or die(mysql_error());

while($row = mysql_fetch_array($query)){

echo "<a href=\"showkod.php?mas=$row[id]\"><img src=\"kod/$row[id].jpg\" border=0 width=350></a><br><br>";
}
Avatar billede jakobdo Ekspert
04. august 2005 - 09:19 #1
Hvilket felt forbinder de 2 tabeller?
Er det kodet.id og Kodetip.idet ?

Hvis ja, så burde du kunne gøre det på følgende måde:

SELECT *
FROM Kodet
INNER JOIN Kodetip
ON Kodet.id = Kodetip.idet
ORDER BY SUM(Kodetip.Vote)
Avatar billede spidr Nybegynder
04. august 2005 - 12:22 #2
Ja det er kodet.id og Kodetip.idet, men forstår ikke helt hvordan jeg gør det du skriver :)
Avatar billede jakobdo Ekspert
04. august 2005 - 12:29 #3
Du bliver næd til at joine de 2 tabeller, hvis du skal trække data ud af en på baggrund af en anden.
Prøv evt at læs mere om SQL JOIN her: http://www.w3schools.com/sql/sql_join.asp
Avatar billede spidr Nybegynder
08. august 2005 - 17:05 #4
jeg har læst det nu, men fatter altså ikke helt hvad det er jeg skal :S nogen der kan skuppe mig lidt igen, evt. give mig noget kode de har i forvejen jeg kan lege med.
Avatar billede jakobdo Ekspert
08. august 2005 - 17:12 #5
Har du adgang til phpmyadmin?
Hvis ja, virker sql'en:

SELECT *
FROM Kodet
INNER JOIN Kodetip
ON Kodet.id = Kodetip.idet
ORDER BY SUM(Kodetip.Vote)
Avatar billede spidr Nybegynder
08. august 2005 - 19:10 #6
Nej,

den siger;

Fejl
SQL-forespørgsel:

SELECT *
FROM Kodet
INNER JOIN Kodetip ON Kodet.id = Kodetip.idet
ORDER BY SUM( Kodetip.Vote )
MySQL returnerede: 

#1111 - Invalid use of group function
Avatar billede spidr Nybegynder
08. august 2005 - 19:31 #7
Ved ikke omd et betyder noget, men du bør nok lige være opmærksom på at idet, ikke er et unikt felt. Der er mange i Kodetip hvor der står det samme i idet, men de skal jo alle sammen ligges sammen og dividere med hvor mange der er, således at man får gennemsnittet, og det er så det der skal sorteres efter.

Håber det hjalp, og mange tak fordi du prøver Jakobdo.
Avatar billede spidr Nybegynder
08. august 2005 - 20:57 #8
Lukker fordi jeg nok har oprettet det forkerte sted.

http://www.eksperten.dk/spm/638463
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester