abonnement Unibet Coolblue Bitvavo
  woensdag 26 oktober 2011 @ 11:31:07 #61
25889 Sitethief
Fulltime Flapdrol
pi_103575046
Tip: gebruik zoiets ipv print_r, zorgt voor een beter overzicht:

1
2
3
4
5
6
7
8
<?php

function echo2($data){
  echo(
'<pre style="border:1px solid black; padding:5px;width:50%;background-color:lightgrey;">');
  
print_r($data);
  echo(
"</pre>");
}
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_103575615
quote:
0s.gif Op woensdag 26 oktober 2011 10:59 schreef mcf het volgende:

Dus stel 2 mensen hebben menu 1 besteld, 1 persoon heeft menu 3 besteld en menu4 blijft leeg.
Hoe krijg ik dan de prijzen bij elkaar opgeteld en in bestelling_detail opgeslagen?
Ik vraag hier niet om een script o.i.d. maar een suggestie voor een oplossing

Bij voorbaat dank.
ik zou gewoon de prijzen in een array douwen en in PHP oplossen.

Oh en kudo's voor de onduidelijkste post van het topic.
pi_103575973
quote:
0s.gif Op woensdag 26 oktober 2011 10:59 schreef mcf het volgende:
Hallo,

ik loop tegen een probleem met mysql.
Ik heb dus een reservering systeem gebouwd. En alles goed en wel, maar nu wil ik de prijs van

de bestelling berekenen.

De prijs is gedefinieerd in de tabel 'menus':

id (auto increment)
Naam (varchar)
prijs (INT)
opmerking (Varchar)

De bestelling wordt opgeslagen in 'bestelling'
id
bestelling
datum
begintijd
eindtijd
klantid (relatie aan naw (klantid))

De details worden opgeslagen in 'bestelling_detail'
bestellingid (relatie aan bestelling (id))

prijs (!Hier moet de prijs in komen te staan!!)

bij menu1t/m4 komen de id's van de bestelde menu's per persoonMax 4 personen voor 1 bestellingen
menu1 (relatie aan menus(id)) (dus bijv. 1)
menu2( '' )
menu3
menu4

Dus stel 2 mensen hebben menu 1 besteld, 1 persoon heeft menu 3 besteld en menu4 blijft leeg.
Hoe krijg ik dan de prijzen bij elkaar opgeteld en in bestelling_detail opgeslagen?
Ik vraag hier niet om een script o.i.d. maar een suggestie voor een oplossing

Bij voorbaat dank.
bestelling_detail
- ID (auto increment, aangezien bestellingID en menuID combinaties vaker kunnen voorkomen)
-bestellingID
-menuID
-Prijs (handig als je datawarehouse gaat opzetten)

SELECT SUM(bestelling_detail) FROM bestelling_detail WHERE bestellingID = {degene die je zoekt}

Deze query kun je combineren met ophalen van de gehele bestelling.
  woensdag 26 oktober 2011 @ 12:38:37 #64
281927 mcf
The end is the beginning.
pi_103577288
quote:
0s.gif Op woensdag 26 oktober 2011 11:48 schreef KomtTijd... het volgende:

[..]

ik zou gewoon de prijzen in een array douwen en in PHP oplossen.

Oh en kudo's voor de onduidelijkste post van het topic.
Hmm, frapant. Ik vond mijn post overzichtelijk en duidelijk:
-Groet
-Inleiding
-Database samenvatting
-Probleem

Natuurlijk was het probleem een beetje raar omschreven maar dat komt omdat ik al een hele poos met die code bezig ben en voor mij lijkt het een redelijk normale zaak.
pi_103577368
quote:
0s.gif Op woensdag 26 oktober 2011 12:38 schreef mcf het volgende:

[..]

Hmm, frapant. Ik vond mijn post overzichtelijk en duidelijk:
-Groet
-Inleiding
-Database samenvatting
-Probleem

Natuurlijk was het probleem een beetje raar omschreven maar dat komt omdat ik al een hele poos met die code bezig ben en voor mij lijkt het een redelijk normale zaak.
Groet hoeft niet, inleiding is altijd fijn, maar minimaal, database samenstelling is goed anders wordt het voor ons een groot gok proces, probleem mist geprobeerde oplossingen en je verkeerd bepaalde relaties aan te geven wat mij idee geeft dat je wat in elkaar hebt gebouwd, maar nog niet precies weet wat je doet.

Maar heb je wat aan mijn oplossing? :P
pi_103577570
Ik zou graag reacties willen op mijn tabellen opzet voor 'vangsten' (van visjes).

vangsten (id, gebruiker_id, maakdatum, bewerkdatum, vangstdatum)
vangsten_specs (id, soort, gegeven)

nu wil ik in specs alle andere gegevens toevoegen, bv
soort, lengte, gewicht, aas soort, lokatie, foto id's, vangst details (water temp, diepte, wind, etc)

echter zit ik dan met het probleem van zoeken.

Bv ik wil alle vissen uitlezen die gevangen zijn in bv groningen.
Of alle vissen van een bepaalde soort

Hoe doe ik dat? is mijn opzet goed? of kan ik beter meer gegeens in het 1e tabel zetten? zoals lokatie, etc, deze gegevens zijn welliswaar optioneel maar komen toch wel vaak voor.

Just my thoughts.... :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_103577765
Heb je een duidelijke definitie van lokatie? Is dit visvijver, stad, omgeving, gemeente of provincie?

Als dit visvijver dan is de parent een stad, dan gemeente, provincie etc.

Alle parents zou ik in verschillende tabellen opnemen en dan is het een eitje met relaties.
  woensdag 26 oktober 2011 @ 12:56:04 #68
281927 mcf
The end is the beginning.
pi_103577919
quote:
0s.gif Op woensdag 26 oktober 2011 12:40 schreef Pakspul het volgende:

[..]

Groet hoeft niet, inleiding is altijd fijn, maar minimaal, database samenstelling is goed anders wordt het voor ons een groot gok proces, probleem mist geprobeerde oplossingen en je verkeerd bepaalde relaties aan te geven wat mij idee geeft dat je wat in elkaar hebt gebouwd, maar nog niet precies weet wat je doet.

Maar heb je wat aan mijn oplossing? :P
Ok, ik ben een beetje mysql noob, dus verbeter mij waar het fout gaat:

SELECT SUM(bestelling_detail)
FROM bestelling_detail WHERE bestellingID = 3
Ik doe dit, in deze bestelling zitten 1x menuid(1) 2x menuid(3) 1xniks
Dus daar wil ik de prijs van berekenen, maar ik krijg de volgende error
#1054 - Unknown column 'bestelling_detail' in 'field list'
pi_103577980
quote:
0s.gif Op woensdag 26 oktober 2011 12:56 schreef mcf het volgende:

[..]

Ok, ik ben een beetje mysql noob, dus verbeter mij waar het fout gaat:

SELECT SUM(bestelling_detail)
FROM bestelling_detail WHERE bestellingID = 3
Ik doe dit, in deze bestelling zitten 1x menuid(1) 2x menuid(3) 1xniks
Dus daar wil ik de prijs van berekenen, maar ik krijg de volgende error
#1054 - Unknown column 'bestelling_detail' in 'field list'
Die foutmelding moet voldoende zeggen lijkt mij? Maar deze moet gaan naar de kolom prijs in de bestelling_detail kolom. Ik weet niet hoe die tabel er nu uitziet?

Tevens als je al problemen hebt met SQL hoe gaat je het dan toepassing in een applicatie?
  woensdag 26 oktober 2011 @ 13:20:42 #70
281927 mcf
The end is the beginning.
pi_103578957
quote:
0s.gif Op woensdag 26 oktober 2011 12:57 schreef Pakspul het volgende:

[..]

Die foutmelding moet voldoende zeggen lijkt mij? Maar deze moet gaan naar de kolom prijs in de bestelling_detail kolom. Ik weet niet hoe die tabel er nu uitziet?

Tevens als je al problemen hebt met SQL hoe gaat je het dan toepassing in een applicatie?
Hier leer ik juist sql van.

Bij bestelling_detail is prijs leeg die wil ik dan veranderen met alter table en de prijs van de menu's in zetten zodat ik later op een pagina met een query de bestelling tonen voor elke klant. Dit gaat allemaal goed maar nu wil ik de prijs ook nog via query uit de db halen maar ik weet niet hoe ik in sql de prijs kan optellen van de menu's.
Menu1
1 relatie aan menus(id(bijvoorbeeld 1)) menus(id, naam, prijs)(1, pasta, 10)
Menu2 .............. ......................................................................................................., 15
Menu3 x
Menu4 x

Ik vermoed dat ik misschien iets met left join zou kunnen doen maar weet niet hoe ik dit moet aanpakken.
Ik hoop dat dit een beetje duidelijk is
  woensdag 26 oktober 2011 @ 13:33:34 #71
267443 Cue_
Cuecumbergirl
pi_103579509
Even een relatief simpele gok ik.

Ik heb een datum veld die ik ophaal uit de database
Hier wil ik 1 jaar bij optellen.
Dit mag ook gelijk met de qry gedaan worden of dat ik hem bewerk in php

(vervolgens dien ik hem weg te schrijven in een andere tabel).

30-09-2010 00:00:00 Dit dient dus 30-09-2011 te worden.
  woensdag 26 oktober 2011 @ 13:39:31 #72
4159 GI
Nee ik heet geen JOE
  woensdag 26 oktober 2011 @ 13:43:42 #73
267443 Cue_
Cuecumbergirl
pi_103579966
quote:
werken die ook allemaal op een oracle database? Ik ga eens googlen :)
Tnx!
pi_103580146
quote:
0s.gif Op woensdag 26 oktober 2011 13:20 schreef mcf het volgende:

[..]

Hier leer ik juist sql van.

Bij bestelling_detail is prijs leeg die wil ik dan veranderen met alter table en de prijs van de menu's in zetten zodat ik later op een pagina met een query de bestelling tonen voor elke klant. Dit gaat allemaal goed maar nu wil ik de prijs ook nog via query uit de db halen maar ik weet niet hoe ik in sql de prijs kan optellen van de menu's.
Menu1
1 relatie aan menus(id(bijvoorbeeld 1)) menus(id, naam, prijs)(1, pasta, 10)
Menu2 .............. ......................................................................................................., 15
Menu3 x
Menu4 x

Ik vermoed dat ik misschien iets met left join zou kunnen doen maar weet niet hoe ik dit moet aanpakken.
Ik hoop dat dit een beetje duidelijk is
Jij wilt dus de volgende database opstelling, dit is even het stuk waar het omgaat:


FK1 gaat van Bestelling_detail.MenuID naar Menu.ID
FK2 gaat van Bestelling_detail.BestellingID naar Bestelling.ID

Zo heb je in ieder record van bestelling_detail een relatie naar de bestelling en het bijhorende menu dat is besteld

Je zult twee queries nodig hebben, eentje om de bestelling overall op te halen (datum, klant, totale prijs etc) en de andere om de productregels op te halen.

De eerste query zal er iets alsvolgt uit zien:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT 
    Bestelling.ID,
    Bestelling.KlantID,
    Klant.Naam,
    SUM(Bestelling_detail.Prijs * Bestelling_detail.Aantal) As Totaalprijs
FROM 
    Bestelling
INNER JOIN Klant
ON     Bestelling.KlantID = Klant.ID
LEFT JOIN Bestelling_detail
    Bestelling.ID = Bestelling_detail.BestellingID
WHERE
    Bestelling.ID = X
(Waar X is de bestelling is waar je op wilt zoeken)

En dan de tweede query:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
    Bestelling_detail.ID,
    Bestelling_detail.MenuID,
    Menu.Naam,
    Menu.Opmerking,
    Bestelling_detail.Prijs,
    Bestelling_detail.Aantal
    Bestelling_detail.Prijs * Bestelling_detail.Aantal As TotaalPrijs
FROM
    Bestelling_detail
INNER JOIN Menu
ON
    Bestelling_detail.MenuID = Menu.ID
WHERE
    Bestelling_detail.BestellingID = X
(Waar X is de bestelling is waar je op wilt zoeken)

En zo haal je dan een bestelling op :)

Vooral het visualiseren van je database werkt er goed met overdragen van informatie als je een probleem probeert te tackelen, anders wel als je het op een Forum zet zodat de rest je ontwerp eenvoudig kan zien.
  woensdag 26 oktober 2011 @ 14:09:47 #75
4159 GI
Nee ik heet geen JOE
pi_103581027
quote:
0s.gif Op woensdag 26 oktober 2011 13:43 schreef Cue_ het volgende:

[..]

werken die ook allemaal op een oracle database? Ik ga eens googlen :)
Tnx!
voor oracle zal de syntax best eens anders kunnen zijn: http://psoug.org/reference/date_func.html
  woensdag 26 oktober 2011 @ 14:37:20 #76
25889 Sitethief
Fulltime Flapdrol
pi_103582158
Ik ken
1
2
3
4
5
6
7
<?php
$a 
xor $b     TRUE if either $a or $b is TRUEbut not both.[php]

Maa ik zoek 

[php]$a operator $b TRUE if either $a or $b is TRUE, or bothbut not none.
?>

Ik ben ff kwijt hoe dat ook al weer ging... volgens mij was dit n iet mogelijk via een operator maar wel op een andere manier
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_103582215
Gewoon "or"? Of (gebruikelijker): ||
  woensdag 26 oktober 2011 @ 14:41:31 #78
25889 Sitethief
Fulltime Flapdrol
pi_103582328
Zie je, ik wist dat ik iets miste :X


:@
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  woensdag 26 oktober 2011 @ 15:37:38 #79
4159 GI
Nee ik heet geen JOE
pi_103584597
Best basic opzich ;)
  woensdag 26 oktober 2011 @ 16:32:33 #80
25889 Sitethief
Fulltime Flapdrol
pi_103586843
Ik had in mijn hoofd zitten dat OR de functionaliteit van XOR had... :X .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 27 oktober 2011 @ 12:59:36 #81
256170 7leintje93
Starting fires without sparks.
pi_103620752
Hey guys,

Ik heb hier een bijzonder simpele vraag maar hoe zorg ik ervoor dat een combinatie van velden in een tabel uniek is? Ik kan het niet vinden. Ik moet een soort tussentabelletje maken waarbij ProjectId en CategoryId samengebracht worden. Een project kan in meerdere categoriën vallen, maar omdat ik dacht dat in PHPMyAdmin een primary key altijd één veld moest zijn heb ik een extra tabelId toegevoegd, maar nu moet ik nog wel zorgen dat er geen dubbele combinaties ontstaan....
Ik gebruik overigens Navicat Lite om mijn tabellen te maken/aan te passen maar ik kan ook wel een beetje overweg met PMA zelf.
Groetjes :)
20 jaar, studente Business IT & Management, Project Manager / Teamleider Businessteam bij B302 (http://www.b302.nl/), muziekverslaafde, filmfanaat, levensgenieter.
--
HEY, HO, LET'S GO!
pi_103620845
quote:
0s.gif Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
Hey guys,

Ik heb hier een bijzonder simpele vraag maar hoe zorg ik ervoor dat een combinatie van velden in een tabel uniek is? Ik kan het niet vinden. Ik moet een soort tussentabelletje maken waarbij ProjectId en CategoryId samengebracht worden. Een project kan in meerdere categoriën vallen, maar omdat ik dacht dat in PHPMyAdmin een primary key altijd één veld moest zijn heb ik een extra tabelId toegevoegd, maar nu moet ik nog wel zorgen dat er geen dubbele combinaties ontstaan....
Ik gebruik overigens Navicat Lite om mijn tabellen te maken/aan te passen maar ik kan ook wel een beetje overweg met PMA zelf.
Groetjes :)
Unique Constraints.
http://www.w3schools.com/sql/sql_unique.asp

[ Bericht 5% gewijzigd door #ANONIEM op 27-10-2011 13:04:00 ]
pi_103620881
quote:
0s.gif Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
Hey guys,

Ik heb hier een bijzonder simpele vraag
Dan kun je hem zelf ook wel oplossen, als je er iets meer werk instopt.
  donderdag 27 oktober 2011 @ 13:06:47 #84
256170 7leintje93
Starting fires without sparks.
pi_103620970
quote:
0s.gif Op donderdag 27 oktober 2011 13:04 schreef Pakspul het volgende:

[..]

Dan kun je hem zelf ook wel oplossen, als je er iets meer werk instopt.
Zo mooi hoe mensen er altijd vanuit gaan dat je lui bent als je om hulp vraagt.
20 jaar, studente Business IT & Management, Project Manager / Teamleider Businessteam bij B302 (http://www.b302.nl/), muziekverslaafde, filmfanaat, levensgenieter.
--
HEY, HO, LET'S GO!
  donderdag 27 oktober 2011 @ 13:10:12 #85
256170 7leintje93
Starting fires without sparks.
pi_103621101
quote:
Thanks a lot! :)
20 jaar, studente Business IT & Management, Project Manager / Teamleider Businessteam bij B302 (http://www.b302.nl/), muziekverslaafde, filmfanaat, levensgenieter.
--
HEY, HO, LET'S GO!
  donderdag 27 oktober 2011 @ 13:14:52 #86
75592 GlowMouse
l'état, c'est moi
pi_103621273
quote:
0s.gif Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
omdat ik dacht dat in PHPMyAdmin een primary key altijd één veld moest zijn heb ik een extra tabelId toegevoegd
Dat is niet zo, je kunt beter een goede tabel aanmaken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 27 oktober 2011 @ 13:23:08 #87
256170 7leintje93
Starting fires without sparks.
pi_103621562
quote:
0s.gif Op donderdag 27 oktober 2011 13:14 schreef GlowMouse het volgende:

[..]

Dat is niet zo, je kunt beter een goede tabel aanmaken.
Wat bedoel je daarmee?
20 jaar, studente Business IT & Management, Project Manager / Teamleider Businessteam bij B302 (http://www.b302.nl/), muziekverslaafde, filmfanaat, levensgenieter.
--
HEY, HO, LET'S GO!
pi_103621582
quote:
0s.gif Op donderdag 27 oktober 2011 13:23 schreef 7leintje93 het volgende:

[..]

Wat bedoel je daarmee?
Dat die extra tabelid overbodig is.
  donderdag 27 oktober 2011 @ 13:24:16 #89
256170 7leintje93
Starting fires without sparks.
pi_103621606
Ik ga het meteen veranderen :) Maakt het alleen maar makkelijker. Thanks!
20 jaar, studente Business IT & Management, Project Manager / Teamleider Businessteam bij B302 (http://www.b302.nl/), muziekverslaafde, filmfanaat, levensgenieter.
--
HEY, HO, LET'S GO!
  donderdag 27 oktober 2011 @ 13:42:08 #90
58834 Catbert
The evil HR Director.
pi_103622230
quote:
0s.gif Op donderdag 27 oktober 2011 13:23 schreef 7leintje93 het volgende:
Wat bedoel je daarmee?
Een key kan prima samengesteld worden uit verschillende kolommen. Het is doornormaal dat in koppeltabellen bijvoorbeeld 2 id's wijzende naar andere tabellen samen een key vormen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')