[php/mysql] database opbouw

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14
Ik ben voor onze vereniging bezig met de opbouw van een database van alle blikken (gewonne roeiwedstrijden). Ik dacht als database-opbouw aan het volgende:

Een tabel met
user_id
blik_naam
type

(type kan Heren, Dames, stuur en coach zijn)

Ik wil de opbouw van de pagina gelijk maken aan de huidige (http://oud.msrvsaurus.nl/wedstrijd/blikkenlijst.htm) en dan bedoel ik vooral op de volgorde.

Ik vraag me af of dit kan met één enkele tabel en zonder al te veel overhead (heel krom programmeren). Ik kwam er niet helemaal uit en dit kwam dan vooral door het in de goede volgorde zetten.

Ik heb het idee dat er een makkelijke mysql/php functie voor moet zijn zoiets als order by count(user_id) maar kan het niet vinden. Ik weet dat dit op het randje van een script request zit maar hoop dat iemand mij kan zeggen of zo'n functie bestaat (en zo ja de naam ervan zodat ik de documentatie ervan kan lezen).

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

wat je zegt. een order by count.. maar dan wel even combineren met een group by.

http://www.w3schools.com heeft wat basic SQL tutorials, bekijk die eens.

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14
Ik loop nu toch weer vast...

mijn php tot nu toe

PHP:
1
2
3
4
5
6
7
8
<?
$sql = "select SUM(kwalificerend),saurus_id from blikken_blik  GROUP BY saurus_id ";
$blikken_query = mysql_query ($sql);
while($blik = mysql_fetch_array($blikken_query)) {

echo ($blik['saurus_id'] . " " . $blik['SUM(kwalificerend)'] . "<br>");
}
?>


ende opbouw van mijn database (een beetje veranderd)

saurus_id

bliknaam

jaar

kwalificerend

type

Thomas

NSRF slot 8+

2006

1



Jan

Argo sprint 2-

2005

0




De kolom kwalificerend kan 1 of 0 zijn, en voor het tellen zijn alleen de 1's van belang, daarom gebruik ik sum(kwalificerend).

Op zich gaat dit allemaal goed, alleen de order by lukt niet:

- order by kwalificerend - dan begint hij met een blik met een 0
- order by SUM(kwalificerend) - Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Dit is natuurlijk op te lossen met een tijdelijk tabel, maar ik wil het liever wat mooier doen, want heb het idee dat dit allemaal wel mogelijk is...

[ Voor 8% gewijzigd door pietje63 op 24-07-2004 14:32 ]

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 11:30

Guldan

Thee-Nerd

PHP:
1
$sql = "SELECT kwalificerend,saurus_id FROM blikken_blik  WHERE kwalificerend =1 GROUP BY saurus_id ";


ik heb meer een omweg gemaakt omdat ik de functie SUM niet ken en gebruik. Ik selecteer nu kwalificerend en saurus_id van de tabel waar de waarde kwalificerend op 1 staat. Snap niet precies wat je wilt doen maar je wil dus alle saurus_id en bijelkaar hebben. Waarom heb je in de tabel eigenlijk geen centraal id veld met autonummering??

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 16:14
Sum (http://www.w3schools.com/sql/func_sum.asp) telt ze bij elkaar op, dus geeft wel het goede aantal wat ik wil :) dat is het probleem niet. Het probleem is dat ORDER BY SUM geen optie is.

Verder wil ik de where statement liever niet toevoegen omdat ik later wel alle blikken wil tonen.

[edit]
ripperke bedankt dat werkt perfect, was precies wat ik zocht, nu kan ik weer verder gaan spelen :).

[ Voor 18% gewijzigd door pietje63 op 24-07-2004 15:09 ]

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

PHP:
1
 SELECT SUM(kwalificerend) AS aantal ....... ORDER BY aantal


mss kan dat je op weg helpen :)

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP

Pagina: 1