Avatar billede kappel Nybegynder
17. februar 2004 - 19:44 Der er 17 kommentarer og
1 løsning

Kan et felt i en tabel opdateres automatisk?

Hej

Jeg har en ret stor tabel, hvor der for hver spiller er:
- kampe_dbu
- kampe_dbu_ialt

Så er mit spørsmål, kan jeg definere feltet 'kampe_dbu_ialt' som det der står i 'kampe_dbu_ialt' + det der opdateres til 'kampe_dbu'

Desuden har jeg også 'kampe alt i alt', da jeg både har vendskabskampe, cupkampe, indendørskampe med. Kan det på samme måde i Mysql lade sig gøre at 'kampe_alt_i_alt' automatisk bliver til summen af: vendskabskampe + cupkampe + indendørskampe ?

/kappel
Avatar billede arne_v Ekspert
17. februar 2004 - 22:10 #1
Du kan ihvertfald lave:

SELECT vendskabskampe + cupkampe + indendørskampe AS kampe_alt_i_alt
FROM tabel
Avatar billede kappel Nybegynder
17. februar 2004 - 22:26 #2
Dvs at det ikke gøres i phpmyadmin?

Ang. SELECT vendskabskampe + cupkampe + indendørskampe AS kampe_alt_i_alt
FROM spillere:
Så skal kommandoen køres hver gang felterne vendskabskampe, cupkampe og indendørskampe opdateres? f.eks. i php?
Eller er jeg helt galt på den?
Avatar billede arne_v Ekspert
17. februar 2004 - 22:31 #3
Pointen er at man i database normalt kun gemmer rådata.

Rådata er i dette tilfælde:
  vendskabskampe
  cupkampe
  indendørskampe

Mens kampe_alt_i_alt kan beregnes.

PHPMyAdmin er vel uinteresseant. Det er vel kun dig som database administrator
de anvender.

De øvrige brugere har vel nogle web sider lavet i PHP som viser forskellige
oplysninger.

I disse PHP script kan du lave SELECT med beregninger i.
Avatar billede arne_v Ekspert
17. februar 2004 - 22:31 #4
Eller snakker jeg sort ?
Avatar billede kappel Nybegynder
17. februar 2004 - 23:31 #5
Ok dvs når jeg via en form opdaterer:
  vendskabskampe
  cupkampe
  indendørskampe

Så kører jeg i sammme ombæring SELECT vendskabskampe + cupkampe + indendørskampe AS kampe_alt_i_alt
FROM spillere:

se evt. her: http://www.eksperten.dk/spm/466495
Avatar billede arne_v Ekspert
18. februar 2004 - 07:31 #6
SELECT ændrer ikke noget.

Den beregner værdier når der er brug for dem d.v.s. først når de skal vises.
Avatar billede arne_v Ekspert
18. februar 2004 - 07:38 #7
Det andet spørgsmål melder jeg pas til - jeg er ikke specielt PHP kyndig.
Avatar billede kappel Nybegynder
18. februar 2004 - 08:21 #8
Ok, dvs. det er faktisk ikke nødvendig at lave et felt i tabellen som hedder:
kampe_alt_i_alt, fordi hvis jeg skal bruge det kan jeg bare skrive:
SELECT vendskabskampe + cupkampe + indendørskampe AS kampe_alt_i_alt
FROM spillere:
Så er jeg med.
Men jeg har også kampe_dbu og kampe_dbu_ialt, hvor kampe kampe_dbu_ialt indeholder data fra sidste sæson, mens kampe_dbu er for den igangværende sæson. Min plan var så at kampe_dbu_ialt blive opdateret, men som du skriver:
Pointen er at man i database normalt kun gemmer rådata.

Det havde jeg ikke lige tænkt over, så jeg må bruge SELECT.
Avatar billede kappel Nybegynder
19. februar 2004 - 22:12 #9
-> arne v
lige nu har sidder jeg fast et andet sted, så jeg kan ikke til at bruge det ligenu, men smider du ikke et svar? Så kan det være jeg vender tilbage hvis jeg får problemer med det!

/Kappel
Avatar billede arne_v Ekspert
19. februar 2004 - 22:15 #10
ok
Avatar billede kappel Nybegynder
24. februar 2004 - 10:10 #11
nu sidder jeg fast.
1. Dette felt skal indeholde kampe_dbu+kampe_ialt:
<td>Antal kampe DBU:</td>
<td><?php echo $data['kampe_dbu'];?></td>
- Hvordan gør jeg det?

2. <td>I alt</td>
  <td><?php echo $data['kampe_IALT'];?></td>
IALT, skal ligge nedenstående tal sammen, der lige er blevet brugt;
<?php echo $data['kampe_dbu'];?>
<?php echo $data['maal_dbu'];?>
<?php echo $data['kampe_dgi'];?>
<?php echo $data['maal_dgi'];?>
osv.
- har du et bud på det?

/kappel
Avatar billede kappel Nybegynder
25. februar 2004 - 17:41 #12
arne_v vil du hjælpe?

kan du uddybe lidt? så kan jeg nok godt finde ud at sætte det ind.
SELECT vendskabskampe + cupkampe + indendørskampe AS kampe_alt_i_alt
FROM tabel
Avatar billede arne_v Ekspert
25. februar 2004 - 22:30 #13
Hvis du laver:

SELECT kampe_dbu,maal_dbu,kampe_dgi,maal_dgi,kampe_dbu+kampe_dgi AS kampe_ialt,
maal_dbu+maal_dgi AS maal_ialt FROM tabel

bør du kunne bruge:

<?php echo $data['kampe_dbu'];?>
<?php echo $data['maal_dbu'];?>
<?php echo $data['kampe_dgi'];?>
<?php echo $data['maal_dgi'];?>
<?php echo $data['kampe_ialt'];?>
<?php echo $data['maal_ialt'];?>

[jeg formoder at PHP'en er OK]
Avatar billede kappel Nybegynder
25. februar 2004 - 22:36 #14
undskyld jeg ikke skrevet det men tefcke har hjulpet, så det er bare perfekt
Avatar billede kappel Nybegynder
28. februar 2004 - 11:11 #15
hvordan gør man sådan at et felt kan indeholde kommatal i mysql?
men som stadig kan bruges til at ligge tal til og fra.
Avatar billede arne_v Ekspert
28. februar 2004 - 12:42 #16
Du vælger en passende data type til feltet.
Avatar billede kappel Nybegynder
28. februar 2004 - 12:48 #17
jep, men hvilken?
Avatar billede arne_v Ekspert
28. februar 2004 - 15:37 #18
Formentlig NUMERIC eller DECIMAL men FLOAT, REAL og DOUBLE var også muligheder.
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
Computerworld tilbyder specialiserede kurser i database-management

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