/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sortering af db udtræk
Fra : Dennis Munding


Dato : 06-06-11 19:14

Hej folkens!

Blind høne søger korn.

Jeg har en db med flg. felter:

player (primary)
team (kan enten være "red" eller "blue")
title (forekommer kun hos 2 spillere)

Mit problem ligger i, at jeg gerne vil sortere udtrækket i 2 kolonner -
"red" og "blue" adskilt.

For nemhedens skyld kan tabellen, som jeg gerne vil udskrive resultatet i
ses her:
http://pgsquad.com/main.php?page=match (Det er den nederste tabel!)

Som det ses, lykkedes det (mildt sagt!) ikke.


Lidt kode for tabellen....:

<START>
<table id="Teams">
<tr>
<td class="big">Red Team</td>
<td class="big">Blue Team</td>
</tr>

<?
$result = mysql_query("SELECT * FROM players");
if (!$result) {
die('Query failed:' . mysql_error());
}

while ($data = mysql_fetch_array($result)){
$player = $data['player'];
$team = $data['team'];
$title = $data['title'];

echo "<tr>";
/*if($team="red") {*/
echo "<td>$player (red)";
if(!empty($title)){
echo "<br /><span class='info'>$title</span>";
}
echo "</td>";
echo "<td>$player (blue)";
if(!empty($title)){
echo "<br /><span class='info'>$title</span>";
}
echo "</td>";
echo "</tr>";
}
?>
</table>
<SLUT>

Jeg har siddet og leget med tanken om 2 udtræk - et for hver farve i "team",
men tænkte at der måtte være en nemmere metode...?

Jeg kan _sagtens_ sortere udtrækket, så alle poster med team="blue" kommer
først og derefter team="red" (eller omvendt), men har ikke prøvet denne form
for sortering før, og kan ikke lige komme på det rigtige stikord (har du
det, så be' om! (-: ) til en søgning....


På forhånd tak for alle input...


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."


 
 
Christian Hansen (06-06-2011)
Kommentar
Fra : Christian Hansen


Dato : 06-06-11 20:20

Hej,

select * from players order by team, player

order by sorterer og du kan nævne så mange kolonner, du ønsker. Første
kolonne vægter højest og så fremdeles.

Venligst

Christian

On 06/06/2011 08:14 PM, Dennis Munding wrote:
> Hej folkens!
>
> Blind høne søger korn.
>
> Jeg har en db med flg. felter:
>
> player (primary)
> team (kan enten være "red" eller "blue")
> title (forekommer kun hos 2 spillere)
>
> Mit problem ligger i, at jeg gerne vil sortere udtrækket i 2 kolonner -
> "red" og "blue" adskilt.
>
> For nemhedens skyld kan tabellen, som jeg gerne vil udskrive resultatet
> i ses her:
> http://pgsquad.com/main.php?page=match (Det er den nederste tabel!)
>
> Som det ses, lykkedes det (mildt sagt!) ikke.
>
>
> Lidt kode for tabellen....:
>
> <START>
> <table id="Teams">
> <tr>
> <td class="big">Red Team</td>
> <td class="big">Blue Team</td>
> </tr>
>
> <?
> $result = mysql_query("SELECT * FROM players");
> if (!$result) {
> die('Query failed:' . mysql_error());
> }
>
> while ($data = mysql_fetch_array($result)){
> $player = $data['player'];
> $team = $data['team'];
> $title = $data['title'];
>
> echo "<tr>";
> /*if($team="red") {*/
> echo "<td>$player (red)";
> if(!empty($title)){
> echo "<br /><span class='info'>$title</span>";
> }
> echo "</td>";
> echo "<td>$player (blue)";
> if(!empty($title)){
> echo "<br /><span class='info'>$title</span>";
> }
> echo "</td>";
> echo "</tr>";
> }
> ?>
> </table>
> <SLUT>
>
> Jeg har siddet og leget med tanken om 2 udtræk - et for hver farve i
> "team", men tænkte at der måtte være en nemmere metode...?
>
> Jeg kan _sagtens_ sortere udtrækket, så alle poster med team="blue"
> kommer først og derefter team="red" (eller omvendt), men har ikke prøvet
> denne form for sortering før, og kan ikke lige komme på det rigtige
> stikord (har du det, så be' om! (-: ) til en søgning....
>
>
> På forhånd tak for alle input...
>
>
> Med venlig hilsen


--
Christian Hansen
http://www.resource-it.dk/

Dennis Munding (06-06-2011)
Kommentar
Fra : Dennis Munding


Dato : 06-06-11 22:37

Hej Christian,
"Christian Hansen" <chrsen@fundanemt.com> skrev i meddelelsen
news:4ded2843$0$315$14726298@news.sunsite.dk...
> Hej,
>
> select * from players order by team, player
>
> order by sorterer og du kan nævne så mange kolonner, du ønsker. Første
> kolonne vægter højest og så fremdeles.
>
> Venligst
>
> Christian

Det var et godt bud men ikke det korrekte.
Det er netop det jeg _ikke_ ønsker - det resulterer blot i, at de blå (blue)
kommer først og derefter rød (red).

Jeg ønsker at kunne dele dem op i de 2 kolonner - alle spiller på rødt hold
(red) til venstre og blåt hold (blue) til højre...

Således:

+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+
| blue + red |
+----------+----------+

Håber det giver mening...?


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."


Martin Larsen (07-06-2011)
Kommentar
Fra : Martin Larsen


Dato : 07-06-11 09:01

Dennis Munding wrote:

> Jeg ønsker at kunne dele dem op i de 2 kolonner - alle spiller på rødt
> hold (red) til venstre og blåt hold (blue) til højre...

Som Leif skriver er det ikke umiddelbart muligt i SQL. Der mangler noget
der binder data sammen.

Fx kan du altid være sikker på at der er lige mange røde og blå?
Hvordan skal programmet vide præcis hvilken blå der skal vises ved siden
af en given rød?

Som du kan se, er der nogle uafklarede spørgsmål!

Leif Neland (07-06-2011)
Kommentar
Fra : Leif Neland


Dato : 07-06-11 06:08

Den 06-06-2011 20:14, Dennis Munding skrev:
> Hej folkens!
>
> Blind høne søger korn.
>
> Jeg har en db med flg. felter:
>
> player (primary)
> team (kan enten være "red" eller "blue")
> title (forekommer kun hos 2 spillere)

Hvis der havde været et felt, du var sikker på var ens på begge hold,
f.ex. at de var nummereret 1-12 hver, så kunne du have joinet tabellen
med sig selv
select r.player as red_player,r.title as red_title,
b.player as blue_player,b.title as blue_title
from players r,players b
where r.nr=b.nr

Men uden den fælles nøgle ville du få 144 rækker ud af det, så det duer
ikke.

Hvis du vil have det i tabelform, kan jeg ikke se det kan klares i sql,
jeg ville lave to udtræk, eller lægge resultatet af udtrækket ind i et
array.

Men det kan jo klares i HTML; du kan sætte hvert hold ind i hver sin
div, og floate dem ved siden af hinanden. Eller bare i hver sin celle i
tabellen, og lave et <br> efter hver.

Leif

--
Bevar P2, luk P3, der er nok P3'er i forvejen.

Dennis Munding (07-06-2011)
Kommentar
Fra : Dennis Munding


Dato : 07-06-11 13:01

Hej Leif!
"Leif Neland" leverede...
> Den 06-06-2011 20:14, Dennis Munding skrev:
>> Hej folkens!
>>
>> Blind høne søger korn.
> Hvis du vil have det i tabelform, kan jeg ikke se det kan klares i sql,
> jeg ville lave to udtræk, eller lægge resultatet af udtrækket ind i et
> array.

Her var guldkornet, som også bekræftede min første indskydelse...

> Men det kan jo klares i HTML; du kan sætte hvert hold ind i hver sin div,
> og floate dem ved siden af hinanden. Eller bare i hver sin celle i
> tabellen, og lave et <br> efter hver.

Selvfølgelig en mulighed hvis det blot var mig selv, der skulle indtaste
data.
Men det er ikke tilfældet - derfor den lidt mere avancerede metode, som også
gør det nemmere, når spillere skal fjernes eller flyttes til det modsatte
hold.

Websitet (pgsquad.com) er efterhånden gået hen og blevet til min egen lille
"legeplads", hvor jeg tester og udvikler mine evner i takt med de opgaver
grundlæggeren af sitet giver mig. Dejligt med nye udfordringer og ny viden.

Tak til alle som kom med input - opgaven løst!


Med venlig hilsen
--
Dennis Munding
a.k.a. The Eye - Member of the PosseGrim Squad
http://pgsquad.com/
"When you hear the wind - you're already dead..."


Søg
Reklame
Statistik
Spørgsmål : 177564
Tips : 31968
Nyheder : 719565
Indlæg : 6408970
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste