Kan ik anders niet de array's naast elkaar laten lopen ofzo?quote:Op zondag 4 januari 2009 14:08 schreef jeroen2497 het volgende:
[..]
Maar normaalgesproken is het toch zo dat als ik een serie ID's opgeef, hij ze in de opgegeven volgorde laat zien? Want hier kan ik volgens mij geen order by voor gebruiken?
Mijn edit gezien?quote:Op zondag 4 januari 2009 15:04 schreef jeroen2497 het volgende:
[..]
Kan ik anders niet de array's naast elkaar laten lopen ofzo?
Had ik niet gezienquote:Op zondag 4 januari 2009 15:25 schreef GlowMouse het volgende:
[..]
Mijn edit gezien?
Ik weet niet wat je bedoelt, maar als de volgorde zo belangrijk is, zul je dat later in PHP moeten regelen.
Je krijgt ze in de volgorde waarin MySQL ze aanlevert, dus die sla je op in een array met als key dat ID. Daarna loop je met een foreach door de array waarin de ID's op juiste volgorde staan en vraag je aan de hand van dat ID weer de bijbehorende tijdelijk opgeslagen MySQL-resultaatrij op.quote:Op zondag 4 januari 2009 15:33 schreef jeroen2497 het volgende:
[..]
Hoe vertel ik PHP dat er een bepaalde volgorde moet worden aangehouden?
1 2 3 | <input type="text" value="iets met "quotes" hier"> ?> |
Je zou het zo kunnen doen:quote:Op zondag 4 januari 2009 20:25 schreef wonderer het volgende:
't Is meer een html-ding, maar goed.
Als ik een waarde uit een database haal dit ik in een tekstbalk wil zetten, en daar staan quotes in, dan gaat het op html gebied mis.
[ code verwijderd ]
Hoe fix ik dat? Is " de enige optie?
1 |
htmlentities() is wel de nettere oplossing van de twee.quote:Op zondag 4 januari 2009 20:30 schreef Tijn het volgende:
[..]
Je zou het zo kunnen doen:
[ code verwijderd ]
Met htmlentities() convert PHP de quotes naar de HTML-code (en alle andere speciale karakters waarvoor een HTML-code bestaat). Dan heb je dit probleem niet meer.
Je zou ook de functie addslashes() kunnen gebruiken, dan worden de quotes geescaped met een slash en voorkom je dit probleem ook.
Is htmlspecialchars() misschien wat je zoekt? Die zet maar een kleine subset van de hele HTML-specialchars set om.quote:Op zondag 4 januari 2009 21:17 schreef wonderer het volgende:
Maar ik wil alleen de quotes doen. De rest wordt al voor gezorgd namelijk. En met htmlentities wordt het een zootje.
Hoe had je het toen gedaan?quote:Slashes werkt niet in het htmlgedeelte (tenminste, toen ik het probeerde kapte hij het alsnog af na de quote).
Ik heb het net ff zelf geprobeerd en blijkbaar kun je in HTML geen slashes escapen. M'n browser print gewoon de slash en daarna stopt 'ie. Dus dan heeft addslashes() ook geen zin.quote:Op zondag 4 januari 2009 21:55 schreef wonderer het volgende:
Gewoon met addslashes();
Nee, dat kan niet. Je zult de HTML-code of een ander type quotes moeten gebruiken.quote:Ik vind het zo raar, je zou toch ook gewoon een tekstbalk moeten kunnen maken in puur html met een quote erin?
Maar dan hebben bezoekers zonder Javascript dus een niet-werkende site?quote:Op zondag 4 januari 2009 22:37 schreef wonderer het volgende:
Dom. Nou ja, dan weet ik dat. Heb het nu "opgelost" met javascript omdat ik daar toch al mee bezig was, maar als het nog een keer voorkomt, zal ik het onthouden.
Ja. Maar dat hadden ze sowieso alquote:Op zondag 4 januari 2009 22:43 schreef Tijn het volgende:
[..]
Maar dan hebben bezoekers zonder Javascript dus een niet-werkende site?
Dus nu valideert je HTML niet meer. Lekker handig debuggenquote:Op zondag 4 januari 2009 22:37 schreef wonderer het volgende:
Dom. Nou ja, dan weet ik dat. Heb het nu "opgelost" met javascript omdat ik daar toch al mee bezig was, maar als het nog een keer voorkomt, zal ik het onthouden.
Ik weet hetquote:Op zondag 4 januari 2009 23:50 schreef Roy_T het volgende:
[..]
Dus nu valideert je HTML niet meer. Lekker handig debuggen
Maar zoveel moeite is het toch niet om htmlspecialchars() te gebruiken?quote:Op zondag 4 januari 2009 23:53 schreef wonderer het volgende:
Ik weet het
Ik ben er ook niet blij mee, maar het is een site die maar door twee personen gebruikt wordt (ik en iemand anders) dus HEEL erg is het niet.
Op de een of andere manier werkte het niet (je zag " staan in plaats van ") en ik heb tot nu toe geen tijd/zin gehad om uit te gaan zoeken waarom.quote:Op maandag 5 januari 2009 00:29 schreef Roy_T het volgende:
[..]
Maar zoveel moeite is het toch niet om htmlspecialchars() te gebruiken?
Kijk eens in je source. Ik gok op dubbel escapen, waardoor er & amp;quot; komt te staan.quote:Op maandag 5 januari 2009 00:44 schreef wonderer het volgende:
Op de een of andere manier werkte het niet (je zag " staan in plaats van ") en ik heb tot nu toe geen tijd/zin gehad om uit te gaan zoeken waarom.
quote:Op maandag 5 januari 2009 16:45 schreef Flaccid het volgende:
Ik wil snel een lijstje van alle tijden tussen 0:00 en 24:00, met een half uur of kwartier er tussen
0:00
0:30
1:00
enz. Hoe kan ik dit makkelijk doen?
0:00
0:15
0:30
0:45
1:00
enz
1 2 3 4 5 6 7 8 9 10 11 | $teller = 0; for($i = 0; $i < 24; $i++) { for($j = 0; $j < 60; $ j+= 15) //of +=30 { $val[$teller] = "$i:$j"; $teller++; } } ?> |
1 2 3 4 5 6 7 8 | $val = array(); for($i=0; $i<24; $i++) { for($j=0; $j<60; $j+= 15) { $val[] = sprintf('%02.0f:%02.0f', $i, $j); } } ?> |
Maar $i en $j zijn integers, geen floats. Dus kun je %02d gebruiken ipv %02.0f. Korter en duidelijkerquote:Op maandag 5 januari 2009 21:25 schreef GlowMouse het volgende:
Met sprintf kun je voorloopnullen toevoegen.
[ code verwijderd ]
1 2 3 4 5 | "<br>".$variabele."<br>" // of "<br>$variabele<br>" ?> |
Allebei even goed en voor zover ik weet ook even snel, maar gebruik in het eerste geval dan wel enkele quotes ipv dubbele quotes, aangezien dubbele quotes geen nut hebben wanneer je er geen $vars in zetquote:Op dinsdag 6 januari 2009 01:25 schreef cablegunmaster het volgende:
[ code verwijderd ]
welke is beter te gebruiken en waarom? hele discussie welke je kan gebruiken.
mij is de 1e geleerd. alleen het kan ook met de 2e waarom ? heeft het voordelen nadelen?
Ik dacht dat enkele quotes sneller zijn dan dubbele omdat PHP de inhoud van de quotes dan niet hoeft te parsen.quote:Op dinsdag 6 januari 2009 09:26 schreef Roy_T het volgende:
[..]
Allebei even goed en voor zover ik weet ook even snel, maar gebruik in het eerste geval dan wel enkele quotes ipv dubbele quotes, aangezien dubbele quotes geen nut hebben wanneer je er geen $vars in zet
Dat bedoelde ik met "maar gebruik in het eerste geval dan wel enkele quotes ipv dubbele quotes" (iets te impliciet misschien). Het klopt inderdaad dat enkele quotes sneller zijn. Het scheelt niet veel en zorgt niet voor een trage app, maar in het kader van "nette code" moet je imo enkele en dubbele quotes gebruiken waar ze voor verzonnen zijn (dus alleen dubbele quotes wanneer er iets in staat wat geparsed moet worden, zoals een $var of /n newline ofzo).quote:Op dinsdag 6 januari 2009 09:30 schreef Tijn het volgende:
[..]
Ik dacht dat enkele quotes sneller zijn dan dubbele omdat PHP de inhoud van de quotes dan niet hoeft te parsen.
Ik denk dat het eerste script waarbij het een merkbaar verschil in snelheid oplevert nog in deze reeks gepost moet worden.quote:Op dinsdag 6 januari 2009 09:30 schreef Tijn het volgende:
[..]
Ik dacht dat enkele quotes sneller zijn dan dubbele omdat PHP de inhoud van de quotes dan niet hoeft te parsen.
quote:Op dinsdag 6 januari 2009 01:25 schreef cablegunmaster het volgende:
[ code verwijderd ]
welke is beter te gebruiken en waarom? hele discussie welke je kan gebruiken.
mij is de 1e geleerd. alleen het kan ook met de 2e waarom ? heeft het voordelen nadelen?
Nee, dat vind jijquote:
1 2 3 | echo $var1 . ' tekst ' . $var2 . ' tekst... '; ?> |
1 2 3 | echo "$var1 tekst $var2 tekst" ?> |
IDE`s vinden dat ook veul mooier, kijk maar naar de kleurverschillenquote:Op dinsdag 6 januari 2009 10:58 schreef Roy_T het volgende:
[..]
Nee, dat vind jij
Ik vind het ranzig om het door die functie te gooien "voor de mooi" (en zelfs dat niet imo), en daarmee volledig nutteloze overhead te creëren. Persoonlijk gebruik ik ook altijd 'string' . $var . 'string' voor de leesbaarheid, omdat je dan in één oogopslag ziet waar een $var staat. Maar ieder z'n meug natuurlijk
NotePad++ vindt het inderdaad niet zo fijn om alles maar in stringvorm te parsen.quote:Op dinsdag 6 januari 2009 11:14 schreef Scorpie het volgende:
[..]
IDE`s vinden dat ook veul mooier, kijk maar naar de kleurverschillen
Dan is er nog altijd het argument dat je voor het typen van ' geen shift nodig hebt, en voor het typen van " wel. Gemak dient de mens, en ik ga niet onnodig " gebruiken als ' volstaat.quote:Op dinsdag 6 januari 2009 10:41 schreef SuperRembo het volgende:
[..]
Ik denk dat het eerste script waarbij het een merkbaar verschil in snelheid oplevert nog in deze reeks gepost moet worden.
Klopt, al zou je IDE's en code editors nog wel zo kunnen tweaken dat 'ie een $var binnen dubbele quotes een ander kleurtje geeft. En het is een stukje gewenning uit andere talen, zoals Tuvai al aangeeft. Ik programmeer niet alleen in PHP en ben gewend dat je een $var niet zomaar in een string kan knallen. Maar PHP geeft ook weinig om data types uiteraard (rekenen met stringsquote:Op dinsdag 6 januari 2009 11:14 schreef Scorpie het volgende:
IDE`s vinden dat ook veul mooier, kijk maar naar de kleurverschillen![]()
1 2 3 4 | $var = 'omfg wtf bbq'; echo '$var = ' . $var . 'hehe'; ?> |
1 2 3 4 | $var = 'omfg wtf bbq'; echo "$var = $varhehe"; ?> |
Eenschquote:Op dinsdag 6 januari 2009 11:22 schreef Tuvai.net het volgende:
Sowieso voorkom je voor jezelf als programmeur zo onnodige fouten. Ik had laatst nog iemand op MSN die me vroeg waarom zijn script 'niks deed outputten'. Kwam het op het volgende neer:
[ code verwijderd ]
Wat had deze meneer echter gedaan:
[ code verwijderd ]
Oftewel, PHP gaat zoeken naar variabele $varhehe en vindt uiteraard niks. Ik vind het gewoon een slordige gewoonte, alles maar als stringetjes te parsen. PHP zou dat eigenlijk niet moeten toelaten, dat doet het gros van de andere 'grote' programmeertalen ook niet. Ik zie het derhalve als een soort van automatische foutcorrectie voor slechte programmeurs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | error_reporting(E_ALL); mysql_connect("localhost", "root", "")or die("mysql_error"); mysql_select_db("opdracht1")or die("mysql_error"); $username = $_POST['username']; if (isset($_POST['submit'])) { $query = "SELECT `vraag` FROM `members` WHERE `username` = '".$username."'"; $result = mysql_query($query); $rowcount= mysql_num_rows($result); if ($rowcount > 0) { echo "Je geheime vraag: '".$result."'"; <tr> <td> <input type="text" name="antwoord"> </td> </tr> <tr> </td> <input type="submit" name="geefww" value="Geef mijn wachtwoord!"; } else { echo "Deze gebruikersnaam is niet bekend bij ons."; } } else { echo "Gelieve wel een username in te vullen"; } ?> |
Eens. Volgens mij kan het in de meeste andere talen ook niet, omdat ze niet eisen dat een variabele met een bepaald teken (bijvoorbeeld $) begint. En als je variabelenaam gewoon een aantal letters is, zoek dan de variabele maar eens tussen de andere letters.quote:Op dinsdag 6 januari 2009 11:22 schreef Tuvai.net het volgende:
Oftewel, PHP gaat zoeken naar variabele $varhehe en vindt uiteraard niks. Ik vind het gewoon een slordige gewoonte, alles maar als stringetjes te parsen. PHP zou dat eigenlijk niet moeten toelaten, dat doet het gros van de andere 'grote' programmeertalen ook niet. Ik zie het derhalve als een soort van automatische foutcorrectie voor slechte programmeurs.
1) $resource is gewoon jouw uitvoer van de functie mysql_query(). Je doet verder nog niks met deze uitvoer/query. zoek eens op mysql_fetch_array() of mysql_fetch_assoc().quote:Op dinsdag 6 januari 2009 12:07 schreef Kerol het volgende:
Ik wil de geheime vraag van een gebruiker tonen als deze zijn wachtwoord vergeten is.
Probleem is dat ik elke keer Je geheime vraag: 'Resource id #3' als antwoord krijg en niet de échte geheime vraag zoals die in de database staat.
Waarom krijg ik Resource id #3????
[ code verwijderd ]
Er staan trouwens wel ?> en <?php om dat html heen alleen verwijderd FOK dat op de een of andere manier.
Dat los je gewoon op dmv ${var}hehe of zoals php het ook toestaat iirc: {$var}hehe.quote:Op dinsdag 6 januari 2009 11:22 schreef Tuvai.net het volgende:
Sowieso voorkom je voor jezelf als programmeur zo onnodige fouten. Ik had laatst nog iemand op MSN die me vroeg waarom zijn script 'niks deed outputten'. Kwam het op het volgende neer:
[ code verwijderd ]
Wat had deze meneer echter gedaan:
[ code verwijderd ]
Oftewel, PHP gaat zoeken naar variabele $varhehe en vindt uiteraard niks. Ik vind het gewoon een slordige gewoonte, alles maar als stringetjes te parsen. PHP zou dat eigenlijk niet moeten toelaten, dat doet het gros van de andere 'grote' programmeertalen ook niet.
Vooral dit is een goede Kerol. Want wat zal er gebeuren als iemand als username "';DELETE FROM `members` WHERE 1 OR `username` = '" invult?quote:Op dinsdag 6 januari 2009 12:19 schreef Tuvai.net het volgende:
3) Je script is erg vatbaar voor SQL Injection; je gebruikt immers rechtstreeks een variabele die gebruik maakt van een $_POST waarde zonder hier ook maar enige controle op uit te voeren.
1 2 | DELETE FROM `members` WHERE 1 OR `username` = '' |
Lees de documentatie bij mysql_query eens goedquote:Op dinsdag 6 januari 2009 12:57 schreef Roy_T het volgende:
[..]
Vooral dit is een goede Kerol. Want wat zal er gebeuren als iemand als username "';DELETE FROM `members` WHERE 1 OR `username` = '" invult?
Juist, dan krijg je dit...
[ code verwijderd ]
En weg zijn al je members
Detailsquote:Op dinsdag 6 januari 2009 12:58 schreef GlowMouse het volgende:
Lees de documentatie bij mysql_query eens goed
Helaas zijn er teveel hosts die dat niet ondersteunen, net als mysqli.quote:Op dinsdag 6 januari 2009 14:53 schreef slacker_nl het volgende:
Daarom gebruik je PDO...
Dat is leuk gezegd, maar je hebt niet altijd invloed op het platform waar je applicatie op wordt geďnstalleerd.quote:Op dinsdag 6 januari 2009 14:56 schreef slacker_nl het volgende:
Dan ga je weg bij die hosters, maak duidelijk dat je weggaat omdat ze die features niet ondersteunen en dan gaan ze vanzelf wel een keer die meuk ondersteunen.
Jij hebt het steeds over hosters, Tijn over platformen. Een hoster host wel op een bepaald platform, maar een platform hoeft nog niet bij een host te horen. Ik heb bijvoorbeeld een klant die naast enkele honderden servers met PHP5 ook nog honderden bakken heeft met PHP4, puur omdat er ook legacy spul op draait (en zo nog meer redenen). Die hebben uiteraard geen host, maar een eigen team van systeembeheerders met daarboven weer architecten. Ik kan nog zo graag PHP5 willen, maar als ik daar op een cluster met PHP4 kom dan breng ik er niets tegeninquote:Op dinsdag 6 januari 2009 16:35 schreef slacker_nl het volgende:
Dat betekend overigens wel dat je hoster geen PHP 5.x draait. Das alleen al reden genoeg om naar een andere hoster over te stappen of te adviseren om te zoeken naar een andere hoster.
Geen idee, ik ben niet zo goed in regular expressions. Of zit ik helemaal fout met dat 'ie REGEXP moet gebruiken?quote:
met REGEXP in MySQLquote:Op donderdag 8 januari 2009 11:17 schreef Chandler het volgende:
Weet iemand zo even uit zijn mouw te schudden hoe je middels een query (mysql) gebruikers kunt vinden waarbij de gebruikersnamen beginnen met een cijfer (0-9). Met letters lukt simpel LIKE 'B%' maar ik wil nu alle gebruikers die gebruikersnamen hebben met 0-9
Werkt idd perfect, had zelf een andere versie met % maar dat werkte natuurlijk nietquote:
Nee dus.quote:Op donderdag 8 januari 2009 11:36 schreef GlowMouse het volgende:
Je kunt denk ik ook WHERE veld BETWEEN '0' and '9' gebruiken.
'9adsf' gaat foutquote:
Ik zou voor het eerste gaan om de volgende reden:quote:Op donderdag 8 januari 2009 07:29 schreef jeroen2497 het volgende:
Ik heb een vraag mbt de bouw van een webshop.
Hoe zouden jullie de data van een bestelling in de database opnemen?
Een tabel met;
- klant_nummer, product_nummer, prijs
- klant_nummer, product_nummer, product_naam, product_gewicht, prijs
Het voordeel van optie 2 is dat als er een productnaam wordt gewijzigd (of zelfs verwijderd), dat alle info wel in de bestelling blijft staan.
Het gaat om flink wat bestellingen per dag.
Graag jullie idee hier over!!
Ja, dat doe ik inderdaad ookquote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Ik zou het wel redundant opslaan, en dezelfde tabel gebruiken voor "bestellingen" en "facturen". Het is namelijk precies hetzelfde, alleen is bij de ene "payed" false en bij de andere true.
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
Data redundant opslaan lijkt me in dit geval een duidelijk voordeel hebben: het is 100% gelijk aan het moment waarop er besteld werd.
Ik zou overigens wel een aparte tabel maken voor orders (dus bestellingen), met hierin het klantnummer, afleveradres, status, etc. en een tabel met order_items (ofzo) die weer aan orders hangen.
Dat dus. Bestellingen != Facturen, en daar moet je in je database al rekening mee hebben gehouden.quote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Ik zou het wel redundant opslaan, en dezelfde tabel gebruiken voor "bestellingen" en "facturen". Het is namelijk precies hetzelfde, alleen is bij de ene "payed" false en bij de andere true.
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
Data redundant opslaan lijkt me in dit geval een duidelijk voordeel hebben: het is 100% gelijk aan het moment waarop er besteld werd.
Ik zou overigens wel een aparte tabel maken voor orders (dus bestellingen), met hierin het klantnummer, afleveradres, status, etc. en een tabel met order_items (ofzo) die weer aan orders hangen.
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.quote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
En hoe wil jij de bestelgeschiedenis van iemand gaan bijhouden dan met optie 1?quote:Op donderdag 8 januari 2009 15:41 schreef Database het volgende:
[..]
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.
Daarnaast is een factuur niet hetzelfde als een bestelling wat betaald is aangezien een factuuradres anders kan zijn dan het bezorgadres.
Sterker nog, real life is een bestelbon ook geen factuur en als je gaat modelleren wil je dat soort nuances ook in je model hebben. En tuurlijk er zijn altijd wel hacks te bedenken om twee verschillende beestjes een te maken (of andersom), maar omdat het kan en omdat het werkt wil het nog niet zeggen dat het goed is.
Stel je gaat naar een winkel en plaatst een bestelling wat je over 5 dagen op kan komen halen. Je komt na 5 dagen je bestelling halen. De winkelier kan voor zijn eigen gemak en voor het milieu geen factuur maken maar jou bestelbon ondertekenen en erbij zetten dat het betaald is. Dat gebeurt toch ook niet..? En fraudegevoeligheid is echt niet de belangrijkste reden.
Een persoon heeft 0 of meer facturen, een factuur heeft 1 of meer producten. Tadaamquote:Op donderdag 8 januari 2009 15:44 schreef Scorpie het volgende:
[..]
En hoe wil jij de bestelgeschiedenis van iemand gaan bijhouden dan met optie 1?
Dan is een "bestelling" voor ons beiden iets anders. Ik zou pas een "bestelling" van iets maken wanneer de order geplaatst wordt, en het tot die tijd alleen in de sessie of tijdelijk in een aparte tabel ofzo zetten.quote:Op donderdag 8 januari 2009 15:41 schreef Database het volgende:
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.
Daarnaast is een factuur niet hetzelfde als een bestelling wat betaald is aangezien een factuuradres anders kan zijn dan het bezorgadres.
Ik vind het geen hack. Je kunt wel alles naar real life willen modeleren, maar soms (en imo in dit geval) kun je hierbij gelukkig dingen die in real life niet kunnen. Jij hebt het over bestelbonnen en facturen, ik gewoon over "orders". En die zijn betaald of niet betaald (of hebben een andere status, zoals "wacht op akkoord" of whatever), en op basis van die status kun je een bestelbon, afleverbon, retourbon, RMA-formulier of een factuur genereren. Dat je in de supermarkt een bonnetje krijgt, wil niet zeggen dat er in hun boekhouding allemaal "bonnetjes" zitten. Dat zijn gewoon verkopen/orders, waarbij het bonnetje één van de vele mogelijke representaties van die order is.quote:Sterker nog, real life is een bestelbon ook geen factuur en als je gaat modelleren wil je dat soort nuances ook in je model hebben. En tuurlijk er zijn altijd wel hacks te bedenken om twee verschillende beestjes een te maken (of andersom), maar omdat het kan en omdat het werkt wil het nog niet zeggen dat het goed is.
Bestelling_nr , Klant_nummer, Productnummer, Product_naam,product_gewicht, Prijsquote:Op donderdag 8 januari 2009 07:29 schreef jeroen2497 het volgende:
Ik heb een vraag mbt de bouw van een webshop.
Hoe zouden jullie de data van een bestelling in de database opnemen?
Een tabel met;
- klant_nummer, product_nummer, prijs
- klant_nummer, product_nummer, product_naam, product_gewicht, prijs
Het voordeel van optie 2 is dat als er een productnaam wordt gewijzigd (of zelfs verwijderd), dat alle info wel in de bestelling blijft staan.
Het gaat om flink wat bestellingen per dag.
Graag jullie idee hier over!!
orders kunnen ook anders worden weergegeven.quote:orders (order_id, klant_id, opmerkingen, timestamp)
orders_items, (item_id, order_id, naam, prijs, opmerkingen)
orders_gegevens (order_ID, factuur_adres, leverings_adres)
PHP kan dat nietquote:Op vrijdag 9 januari 2009 10:02 schreef LordNemephis het volgende:
Is er ook iemand die tips heeft m.b.t. uploaden en converteren naar .FLV van filmpjes m.b.v. PHP? Ik las op het grote internet dat Ffmpeg daarvoor het meest geschikt zou zijn - iemand die dat kan bevestigen?
Heb dat nog nooit gedaan en wil daar toch es mee aan de slag
Ik weet dat PHP op zichzelf geen video's kan converteren. Ik zocht idd naar een OpenSource oplossing (lees: graties). Ffmpeg is dus wel een aanrader voor mij?quote:Op vrijdag 9 januari 2009 11:02 schreef Tijn het volgende:
FFMpeg is niet het beste programma om video's mee te recoden, maar het is in elk geval wel gratis en ondersteunt veel formaten. Je kunt het vanuit PHP makkelijk aanroepen omdat het een command line programma is.
Ja, gratis is er sowieso weinig anders te vinden op dit gebied.quote:Op vrijdag 9 januari 2009 11:31 schreef LordNemephis het volgende:
[..]
Ik weet dat PHP op zichzelf geen video's kan converteren. Ik zocht idd naar een OpenSource oplossing (lees: graties). Ffmpeg is dus wel een aanrader voor mij?
1 |
Tijd voor een lesje datatypes voor beginnersquote:Op vrijdag 9 januari 2009 14:55 schreef Gloeidoos het volgende:
Stel ik heb in tabel a een kolom 'naam'. In tabel b is de primary key deze 'naam'. Verder staat in tabel b nog een kolom 'enabled' met de waarde 'Y' of 'N'.
Ik heb de tables aangepast om het een beetje simpel te houden. In feite is het een kolomnaam met de naam state, enum('enabled','disabled'). Volgens mij komen hier uiteindelijk nog meer states bij, als dat nodig is.quote:Op vrijdag 9 januari 2009 15:18 schreef Roy_T het volgende:
[..]
Tijd voor een lesje datatypes voor beginners
Wat jij wilt is een boolean, en die sla je normaliter in een MySQL database op als integer met de waarde 1 (true) of 0 (false).
Zou voor geen van die beide gaan... zou voor het volgende gaan...quote:Op donderdag 8 januari 2009 07:29 schreef jeroen2497 het volgende:
Ik heb een vraag mbt de bouw van een webshop.
Hoe zouden jullie de data van een bestelling in de database opnemen?
Een tabel met;
- klant_nummer, product_nummer, prijs
- klant_nummer, product_nummer, product_naam, product_gewicht, prijs
Het voordeel van optie 2 is dat als er een productnaam wordt gewijzigd (of zelfs verwijderd), dat alle info wel in de bestelling blijft staan.
Het gaat om flink wat bestellingen per dag.
Graag jullie idee hier over!!
Of, nog een andere optie:quote:Op vrijdag 9 januari 2009 14:58 schreef HuHu het volgende:
Wat je nu doet is hetzelfde als:
[ code verwijderd ]
1 2 3 4 5 | FROM a JOIN b USING (naam) WHERE b.enabled = 'Y'; |
Kan je mij uitleggen wat er beter is aan:quote:Op vrijdag 9 januari 2009 14:58 schreef HuHu het volgende:
Wat je nu doet is hetzelfde als:
[ code verwijderd ]
Die tweede vorm is veel efficienter. Je geeft daar meteen aan hoe gejoind moet worden in de on clause, en daardoor kan de query beter geoptimaliseerd worden.quote:Op vrijdag 9 januari 2009 17:21 schreef slacker_nl het volgende:
[..]
Kan je mij uitleggen wat er beter is aan:
select * from a,b where a.id = b.pid and b.bla = 'Y';
en
select * from a join b on a.id = b.pid where b.bla = 'Y';
?
En ik vind het ook een stuk leesbaarder.quote:Op vrijdag 9 januari 2009 18:10 schreef Farenji het volgende:
[..]
Die tweede vorm is veel efficienter. Je geeft daar meteen aan hoe gejoind moet worden in de on clause, en daardoor kan de query beter geoptimaliseerd worden.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |