Udtræk af alle rækker med MAX()

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03
Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 10. jun 2014, 09:28

Hej Nemprogrammering :)

Lavede et indlæg den anden dag, som løste noget af mit problem med min MySQL/PHP kode med Max() funktionen :)

Nu kunne jeg godt tænke mig at få udtrukket alle rækker af en enkelt spiller(min tabel omhandler fodboldspillere, deres klub, styrker, svagheder, målscore osv.)

Og det skal være den spiller der har scoret flest mål :)
De ting jeg har prøvet der ikke har meldt fejl, har kun udtrukket selve målscoren, og ikke alle de andre værdier :)

Min kode:

Kode: Vælg alt

<?php

$brugernavn = $_GET['Brugernavn'];
$adgangskode = $_GET['Adgangskode'];
$admin = "root";
$adminkode = "";
$server = "localhost";
$db = "Login";

if	($brugernavn == $admin && $adgangskode == $adminkode){
	$connect = mysqli_connect("$server" , "$brugernavn" , "$adgangskode" , "$db");
}{
	echo "Forbundet til MySQL og database!<br/><br/><br/>";
}	
if (mysqli_connect_errno()) {
  
	echo "Kunne ikke forbinde til MySQL: " . mysqli_connect_error();
}	

if ($result = mysqli_query($connect,"SELECT Navn, Klub, Position, Målscore, Styrker, Svagheder, Landsholdspiller FROM spiller WHERE Målscore = (SELECT max(Målscore) FROM spiller")){

   while($row = mysqli_fetch_array($result)) {
          echo $row['Navn'] . " " . $row['Klub'] . " " . $row['Position'] . " " . $row['Målscore'] . " " . $row['Styrker'] . "<br>" . $row['Svagheder'] . " " . $row['Landsholdspiller'];
          echo "<br><br>";
   }

} else {

    echo mysqli_error($connect);

}

mysqli_close($connect);

?>
Ved godt at lige den del ikke er korrekt overhoved, men det var lige den bedste del af min kode jeg havde :)


Håber i forstår mit spørgsmål, ellers må i lige sige til :)

Mvh Jullekrolle :)

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Udtræk af alle rækker med MAX()

Indlæg af cristian » 10. jun 2014, 14:33

Udfra din SQL erklæring skal det være noget i stil med

Kode: Vælg alt

SELECT MAX(Målscore) AS FlestMaal FROM spiller;
Så du skal rette denne linje

Kode: Vælg alt

if ($result = mysqli_query($connect,"SELECT Navn, Klub, Position, Målscore, Styrker, Svagheder, Landsholdspiller FROM spiller WHERE Målscore = (SELECT max(Målscore) FROM spiller")){
Til noget lign

Kode: Vælg alt

if ($result = mysqli_query($connect,"SELECT MAX(Målscore) AS FlestMaal FROM spiller")){
For lidt ekstra data kan du sige

Kode: Vælg alt

if ($result = mysqli_query($connect,"SELECT Navn, MAX(Målscore) AS FlestMaal FROM spiller")){
Og hvis du har mange spillere

Kode: Vælg alt

if ($result = mysqli_query($connect,"SELECT Navn, MAX(Målscore) FROM spiller GROUP BY Navn ORDER BY MAX(Målscore)")){

JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03

Re: Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 10. jun 2014, 22:21

Mange tak for det :)

Kan det passe at der ikke er nogen af dem der udtrækker alle rækkerne til den spiller der har scoret flest mål? :)
For det er egentlig det jeg skal :)

Eller er det ved 2'eren, hvor der bare skal sættes noget mere ind efter navn? :)

Mvh JulleKrolle

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Udtræk af alle rækker med MAX()

Indlæg af cristian » 10. jun 2014, 23:53

MAX() burde udskrive den række med flest mål i alle de 4 eksempler.

Jeg ville gerne hjælpe dig yderligere, men så må jeg bede dig om at eksportere din database så jeg kan importere den som min egen,
og se hvad der præcist foregår.

JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03

Re: Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 11. jun 2014, 09:09

Jamen det er jeg også med på at den gør :)

Men kan bare kun få skrevet "33" som er den højeste :)

Lad os nu sige at det er Messi der har scoret dem, så skal jeg også kunne få trukket hans navn, klub, styrker og svagheder ud på min side :)
Kan det lade sig gøre i den samme del af koden? :)
Altså, så jeg egentlig kun bruger max() til at fortælle databasen at det er den spiller det handler om, og så skrive resten af hans data ud også :)

Har først lige adgang til min DB imorgen igen, så hvis det ovenstående ikke hjalp, så skal jeg nok lige sende den imorgen :)

Mvh Jullekrolle

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Udtræk af alle rækker med MAX()

Indlæg af cristian » 11. jun 2014, 15:28

Du må meget gerne sende DB i morgen :)
Så kan jeg give dig et mere præcist svar.

JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03

Re: Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 12. jun 2014, 08:36

Hej igen :)

Kan simpelthen ikke finde en filtype den kan vedhæftes som her på siden :)
Har prøvet sql, php, doc, text, pdf osv. men ikke noget af det ser ud til at kunne uploades :(

Så har taget et screenshot af min phpmyadmin side istedet, det var lige min bedste idé :)


Mvh Jullekrolle
Vedhæftede filer
phpmyadmin.jpg
phpmyadmin.jpg (207.39KiB)Vist 10108 gange

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Udtræk af alle rækker med MAX()

Indlæg af cristian » 12. jun 2014, 09:24

Men kan bare kun få skrevet "33" som er den højeste
Det er også det MAX gør.

Har du prøvet at bruge denne SQL?

Kode: Vælg alt

if ($result = mysqli_query($connect,"SELECT Navn, MAX(Målscore) FROM spiller GROUP BY Navn ORDER BY MAX(Målscore)")){

JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03

Re: Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 12. jun 2014, 10:17

Jeg begynder at tvivle på om det overhoved er muligt :)

Synes ikke der er noget det jeg prøver, eller de ting jeg finder på nettet der virker det mindste :)

Tror dog jeg har ret godt styr på min sql-del, er dog stadig lidt i tvivl om min echo del :D

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Udtræk af alle rækker med MAX()

Indlæg af cristian » 12. jun 2014, 12:25

Jeg begynder at tvivle på om det overhoved er muligt :)
Selvfølgelig kan du det, der er stort set ikke det du IKKE kan med sql og data håndtering.

Ellers så send mig en PM og lad os tage den over skype, så vi hurtig kan tage en dialog om hvad det præcist er du ville opnå på 5 min.

JulleKrolle
Begynder
Indlæg:23
Tilmeldt:24. apr 2014, 10:03

Re: Udtræk af alle rækker med MAX()

Indlæg af JulleKrolle » 12. jun 2014, 12:40

Kan næsten se mig ud af at det nok er min echo-del der er problemet.

for når jeg bruger den seneste if-sætning du sendte, så kan den godt sende navn ud på skærmen, men melder alligevel en fejl samtidig med :)

Og den siger at fejlen er i linje 23, hvor echo-delen er :)

Besvar