Avatar billede kodak Mester
03. januar 2011 - 17:33 Der er 25 kommentarer og
1 løsning

En af hver liste

Jeg har en masse navne der kommer fra min database:
Det hele bliver hentet ud ved hjælp af en $row
Eksempel på liste:

Poul
Knud
Bo
Knud
Per
Poul
Ole
Karsten

Der fra vil jeg kun have at der bliver vist en af hver:
Eksembel:

Poul
Knud
Bo
Per
Ole
Karsten

Så Knud, og Poul kun bliver vist en gang.
Avatar billede repox Seniormester
03. januar 2011 - 17:50 #1
SELECT DISTINCT navn FROM table
Avatar billede kodak Mester
03. januar 2011 - 18:11 #2
Jeg vil gerne stadig have de andre med ud over navn
som alder og højde o.s.v.
Avatar billede repox Seniormester
03. januar 2011 - 18:21 #3
Hvordan havde du tænkt dig det skulle foregå? Ville du gruppere de forskellige aldre og højder under et navn? Jeg tror du skal specificere yderligere hvad det er du ønsker at opnå...
Avatar billede kodak Mester
03. januar 2011 - 18:38 #4
i min database har jeg id, navn, alder, hojde;

Navne delen er rigtig nok

men skal bruge alder på de navne der er hevet frem.
Avatar billede repox Seniormester
04. januar 2011 - 14:02 #5
Det bliver noget med at sortere navnene i alfabetisk orden og så lave noget ala:
<?php
  ...
  $sql = "SELECT * FROM table ORDER BY navn ASC";
  $name = "";
  $res = $mysqli->query($sql);

  while( $obj = $res->fetch_object() )
  {
    if( $name != $obj->navn )
    {
      echo $obj->navn.":";
      $name = $obj->navn;
    }
      echo $alder;
      echo $hojde;
  }
  ...
?>
Avatar billede kodak Mester
04. januar 2011 - 16:28 #6
Hvad så med det tidligere?
Avatar billede repox Seniormester
04. januar 2011 - 16:32 #7
Ikke forstået?
Avatar billede kodak Mester
04. januar 2011 - 21:47 #8
Hvad med 'SELECT DISTINCT navn FROM table'
Avatar billede repox Seniormester
04. januar 2011 - 21:54 #9
Den konstaterede du jo selv ikke var brugbar?
Avatar billede jenknu Nybegynder
05. januar 2011 - 10:55 #10
"SELECT navn FROM table GROUP by navn"

Det vil vælge unikke navn, og skippe de steder, hvor navn == navn.
Avatar billede repox Seniormester
05. januar 2011 - 11:01 #11
#10
Men det vil også udelade de resultater i som efterspurgt i #4
Samtidig er din forespørgsel bare en omskrivning af min i #1 som ikke gav OP det ønskede resultat.
Avatar billede jenknu Nybegynder
05. januar 2011 - 11:13 #12
#11

Ja, da jeg lige læste op på distinct kunne jeg godt se, at det nogenlunde var samme funktion. Det er længe siden, jeg har brugt distinct, men i princippet giver det samme resultat.

Kodak: Kan du ikke være lidt mere specifik omkring, hvad du helt præcist ønsker?
Hvis jeg har forstået dig rigtigt, så skal du bruge eet af hvert navn (udelade dubletter), men du ønsker stadig at få alle aldre og højder? Også selvom du ikke hiver et navn ud?
Hvis du kunne forklare lidt omkring hvad du skulle bruge det til, kunne man måske hjælpe dig lidt bedre.
Avatar billede kodak Mester
05. januar 2011 - 22:53 #13
På alle
Poul'er er alderen det samme
D.v.s at jeg kun skal bruge alder på en af hver.

Jeg skal bruge navn og alder og der må ikke komme dubletter i navn
Så vil gerne have vist alder på de navne den har valgt ud til visning.

Jeg skal have en liste med navne
og hver navn skal have et billede.
Billede får sit navn efter alder.
Avatar billede DGudiksen Nybegynder
06. januar 2011 - 01:02 #14
SELECT * FROM table GROUP BY navn

Burde da kunne gøre det ;)
Avatar billede jenknu Nybegynder
06. januar 2011 - 09:42 #15
Altså, hvis du har en tabel med følgende værdier:

id - navn - alder - højde
1  -  Ole -  10  -  150
2  -  Ole -  12  -  155
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170
6  -  Tim -  14  -  160

Og laver en SELECT * FROM navne GROUP BY navn, vil output være:
1  -  Ole -  10  -  150
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170

Id, alder og højde værdier vil blive taget fra den først-fundne række.

Hvis det er fordi du ikke vil risikere, at navn og alder er det samme, sådan så dit filnavn bliver det samme, så tag da ID nummeret med ind i billednavnet? Så har du et unikt navn.

Eller har jeg misforstået opgaven?
Avatar billede kodak Mester
06. januar 2011 - 16:24 #16
Jeg har en tabel med følgende værdier:

id - navn - alder - højde
1  -  Ole -  10  -  150
2  -  Ole -  12  -  155
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170
6  -  Tim -  14  -  160

Og skal vise sig Så ledes:
1  -  Ole -  10  -  150
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170

Ja ind til nu.




Mit script ser ud på følgende måde:

include('3/config.php');
@session_start();

mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die (mysql_error());
mysql_select_db($mysql['db']) or die (mysql_error());

$n = 0;   
$number = -1;
$query = mysql_query("SELECT * FROM pers_module GROUP BY alder") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {


$number++;
if ($number != 0) {
if (($number % 5) == 0) {

echo "</tr>\n\n";
echo "<tr>\n";

}
}
if ($n==20) continue;
if ($row['vis'] == '1') {
if(@file_exists('images/' . $row['navn'] . '.png')) {
echo '<td><a href="index1.php?side=' . $row['alder'] . '"><center><img src="images/' . $row['navn'] . '" width="60" height="60" alt="' . $row['navn'] . '" border="0" align="absmiddle"></center></a><a href="index1.php?side=' . $row['alder'] . '"><center><p class="ungdom01">' . $row['navn'] . '</a></p></center></td>';
} else {
echo '<td><a href="index1.php?side=' . $row['alder'] . '"><center><img src="images/blank.png" width="60" height="60" alt="' . $row['navn'] . '" border="0" align="absmiddle"></center></a><a href="index1.php?side=' . $row['alder'] . '"><center><p class="ungdom01">' . $row['navn'] . '</a></p></center></td>';

}
$n++;
}
}

Men bruger jeg 'SELECT * FROM pers_module GROUP BY alder'

Får jeg vist
2 i første linie.
3 i anden linie.
4 i tredie linie.

Men jeg skal have vist.
5 i første linie.
5 i anden linie.
5 i tredie linie.
o.s.v.

Og min tabel har over 54 navne lige nu og hvis jeg fjerner alle dubletter har jeg 14 forskellige navne men jeg får kun vist 9 og jeg har plads til 15 m.m.
Avatar billede jenknu Nybegynder
06. januar 2011 - 17:45 #17
Jeg forstår ikke hvorfor du vil lave GROUP BY alder? var det ikke navne, du ikke vil have 2 af? Du kan jo evt. lave GROUP BY navne, alder. Så grouper du ved to kolonner.
Avatar billede kodak Mester
06. januar 2011 - 18:00 #18
Det giver det samme resultat ud over at.

Får jeg vist
1 i første linie.
4 i anden linie.
4 i tredie linie.
Avatar billede jenknu Nybegynder
06. januar 2011 - 19:53 #19
Jeg må tilstå, at jeg er lidt sat af;

1 i første linie. <- 1 af hvad? et resultat? eller hvordan?
Avatar billede kodak Mester
06. januar 2011 - 20:55 #20
Min database kommer ind i $row som bliver sat i tabel

Normalt skal der være 5 i hver linie
Men dit forslag får den til at vise 1 i første 4 i anden og 4 i tredie.
Avatar billede jenknu Nybegynder
07. januar 2011 - 22:30 #21
Altså, selve outputtet bliver 1,4 og 4? Eller hvordan skal jeg forstå det?

Kan du ikke prøve at skrive de første 10 records fra din database, og så hvad det helt præcist er, du gerne vil have ud? og hvad der ikke må være to af? Så tror jeg, vi bedre kan hjælpe dig :)
Avatar billede kodak Mester
07. januar 2011 - 22:50 #22
Jeg sagde:
id - navn - alder - højde
1  -  Ole -  10  -  150
2  -  Ole -  12  -  155
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170
6  -  Poul -  20  -  168
7  -  Per -  13  -  180
8  -  Kurt -  57  -  150
9  -  Ulf -  79  -  100
10  -  Ib -  14  -  152

Og skal vise sig Så ledes:
1  -  Ole -  10  -  150
3  -  Elo -  11  -  151
4  -  Kim -  20  -  170
5  -  Tim -  15  -  170
6  -  Poul -  20  -  168
7  -  Per -  13  -  180
8  -  Kurt -  57  -  150
9  -  Ulf -  79  -  100
10  -  Ib -  14  -  152


Er korrekt forstået.

Men mit output er
Ole - i første linie
Elo, Kim, Tim, Poul - i anden linie
Per, Kurt, Ulf, Ib - i tredie linie

Hvor den gerne skulle vise:
Ole, Elo, Kim, Tim - i første linie
Poul, Per, Kurt, Ulf - i anden linie
Ib - i tredie linie.
Avatar billede kodak Mester
14. januar 2011 - 20:52 #23
Har du et skud?
Avatar billede kodak Mester
28. januar 2011 - 17:16 #24
Ikke noget hjælp her fra eller?
Avatar billede kodak Mester
17. februar 2011 - 19:29 #25
Er det bare gået 100% i stå?
Avatar billede kodak Mester
25. februar 2011 - 15:07 #26
LUKKER
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