Crutch | vrijdag 27 september 2013 @ 23:13 | |||||
![]() Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt ![]() Zie ook: • PHP Dataverwerking • Officiële PHP website • PHP Documentatie • MySQL Reference Manual • Yet Another PHP Faq • PHP Cheat Sheet • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc Tutorials: • W3Schools PHP • W3Schools SQL Succes heren met het volgende deeltje! | ||||||
Light | vrijdag 27 september 2013 @ 23:14 | |||||
PHP is een prima template engine ![]() | ||||||
Crutch | vrijdag 27 september 2013 @ 23:16 | |||||
Ik echo en print niets meer tegenwoordig. | ||||||
Light | vrijdag 27 september 2013 @ 23:26 | |||||
Sowieso eerst zorgen dat je alle data opgehaald hebt, met alleen php en eventueel mysql. Dus geen output geven als je nog data uit de database aan het verwerken bent. Als je alles opgehaald hebt, kun je een template-bestand includen (met require, dat wel.) Daar gebruik je html en een klein beetje php om de data die je hebt opgehaald weer te geven. Bekijk dan ook eens de alternatieve syntax. En ja, dat kan ongetwijfeld verbeterd worden. Het is een eerste stap. Data verzamelen en de daadwerkelijke output regelen zijn twee verschillende dingen, als je die probeert samen te voegen wordt het al snel een onleesbare en onwerkbare brij. | ||||||
Light | vrijdag 27 september 2013 @ 23:28 | |||||
![]() | ||||||
Crutch | vrijdag 27 september 2013 @ 23:29 | |||||
![]() | ||||||
Crutch | vrijdag 27 september 2013 @ 23:29 | |||||
Kan ook wel met die($output); zeker? hihaho | ||||||
xaban06 | maandag 30 september 2013 @ 22:22 | |||||
Niet echt PHP gerelateerd, maar wist niet waar ik het anders moet plaatsen. Ik wil dmv RewriteEngine/RewriteRule nette URL's maken. http://www.voorbeed.com/index.php?a=nieuws&b=12 moet worden http://www.voorbeed.com/nieuws/12/titel-van-artikel.html Dit doe ik nu dmv:
In de PHP scripts vang ik alles op in $q, deze wordt geparsed op '/' en op die manier verwerk ik het verder. In het bovenstaande is .html niet meegenomen, omdat ik bij mijn huidige projecten dat niet heb, Hoe moet ik bovenstaande aanpassen zodat het wordt zoals ik wil? | ||||||
zoem | maandag 30 september 2013 @ 22:39 | |||||
Ik begrijp je vraag even niet. Je hebt nu een werkende htaccess zeg je. Wat lukt er niet? | ||||||
KomtTijd... | dinsdag 1 oktober 2013 @ 12:29 | |||||
Even voor de Symfony2 gebruikers: een hoop van mijn entities hebben dezelfde velden zoals id, createdtime, createdby, enz.. Die wil ik overhevelen naar een base entity die ik in iedere bundle kan extenden. Waar kan ik die base entity dan het beste neerzetten? | ||||||
#ANONIEM | dinsdag 1 oktober 2013 @ 12:47 | |||||
Waar haal je $q vandaan?, $_GET["q"] ? [ Bericht 0% gewijzigd door #ANONIEM op 01-10-2013 12:48:49 ] | ||||||
#ANONIEM | dinsdag 1 oktober 2013 @ 12:55 | |||||
Waarom niet iets in deze richting? .htaccess
index.php
| ||||||
xaban06 | dinsdag 1 oktober 2013 @ 13:34 | |||||
Ja. | ||||||
#ANONIEM | dinsdag 1 oktober 2013 @ 13:34 | |||||
Is mijn post hierboven geen oplossing? | ||||||
xaban06 | dinsdag 1 oktober 2013 @ 13:36 | |||||
Oh, over het hoofd gezien. Vanavond even proberen, zit nu op werk ![]() | ||||||
Boze_Appel | dinsdag 1 oktober 2013 @ 13:39 | |||||
De rerwiteengine on hoeft niet. Tenzij je op een gare server zit. Je kan het niet aanzetten als het niet mag van de server en anders staat het toch wel aan. Het is vrij antiek. Het kan geen kwaad ofzo, maar is gewoon niet nodig. | ||||||
#ANONIEM | dinsdag 1 oktober 2013 @ 14:47 | |||||
Dat dus. | ||||||
xaban06 | vrijdag 4 oktober 2013 @ 14:15 | |||||
Dit werkt: http://www.xx.nl/nieuws/12/test.html Dit werkt niet: http://www.xx.nl/nieuws/12/ http://www.xx.nl/nieuws/ Terwijl die URL's ook geparsed moeten worden. | ||||||
#ANONIEM | vrijdag 4 oktober 2013 @ 14:16 | |||||
Is op te lossen. Zal ik vanmiddag even naar kijken voor je, momenteel op school. | ||||||
#ANONIEM | vrijdag 4 oktober 2013 @ 16:51 | |||||
je begrijpt het systeem verkeerd. Het enige wat je wilt is dat altijd de index wordt geladen. Geen $q=nieuws $a=12 etc. Je moet een router maken die je urls omzet in bruikbare data. Aan de hand daarvan laadt je een pagina in. | ||||||
zoem | vrijdag 4 oktober 2013 @ 17:14 | |||||
Wat totalvamp zegt, maar dan met aanvullende info ![]() Dat is geen praktische oplossing wanneer je een verscheidenheid aan urls hebt. Je hebt niet altijd 3 argumenten die deze exacte vorm aannemen. Het parsen van de url kun je het best over laten aan php door alles door te sturen naar index.php die uitzoekt welke route genomen moet worden aan de hand van een router class. Even een greep uit beschikbare routers: Slim Framework | Zend Framework | CakePHP Met name die van Slim is eenvoudig en simpel op te zetten zonder allerlei poespas. De benodigde htaccess volgens de docs:
| ||||||
#ANONIEM | vrijdag 4 oktober 2013 @ 17:18 | |||||
srry typ op mijn telefoon vanuit het bad xD moeilijk een aantal voorbeelden te geven. | ||||||
#ANONIEM | vrijdag 4 oktober 2013 @ 17:19 | |||||
Ah, ik deed het altijd door alle argumenten optioneel te doen maar dan ziet je regex er behoorlijk rommelig uit. ^([^/]*)(?:/)?((?:[^/]*))?(?:/)?(?:([^/]*)\.html)?$ zou het in dit geval zijn met de laatste 2 optioneel ![]() [ Bericht 4% gewijzigd door #ANONIEM op 04-10-2013 17:20:55 ] | ||||||
xaban06 | vrijdag 4 oktober 2013 @ 23:04 | |||||
Ik kom er net achter dat date() geen taal ondersteuning heeft, ik moet dus gebruik maken van strftime(), echter begrijp ik er bar weinig van. Hoe kan ik
| ||||||
#ANONIEM | vrijdag 4 oktober 2013 @ 23:16 | |||||
http://www.php.net/manual/en/function.setlocale.php | ||||||
xaban06 | vrijdag 4 oktober 2013 @ 23:41 | |||||
Ja, maar date werkt niet met setlocate ![]() | ||||||
zoem | zaterdag 5 oktober 2013 @ 00:09 | |||||
Kwestie van de strftime docs lezen?
Je kunt overigens mysql al de vertaalslag laten maken naar een unix timestamp met UNIX_TIMESTAMP(`col`). | ||||||
xaban06 | zaterdag 5 oktober 2013 @ 13:01 | |||||
Zo simpel ![]() Thanks | ||||||
xaban06 | zaterdag 5 oktober 2013 @ 13:53 | |||||
Is het veilig genoeg om wachtwoorden op te slaan dmv password_hash() ? Voorbeeld:
Ik wilde wachtwoorden opslaan als md5 met een salt, maar toen kwam ik bovenstaande tegen. Welke is veiliger in geval van dat je database wordt gekraakt? | ||||||
themole | zaterdag 5 oktober 2013 @ 14:17 | |||||
Password_hash is veiliger. Password_hash gebruikt (default) het bcrypt algoritme met een (door php gegenereerde) salt. Het bcrypt algoritme is een sterker hashing algoritme dan het verouderde md5. Het is overigens wel mogelijk om zelf een salt mee te geven aan de Password_hash functie. [ Bericht 13% gewijzigd door themole op 05-10-2013 14:42:38 ] | ||||||
Tijn | zaterdag 5 oktober 2013 @ 14:32 | |||||
Password_hash is awesome. Als je PHP 5.5 of hoger beschikbaar hebt, is het the way to go. | ||||||
xaban06 | zaterdag 5 oktober 2013 @ 14:55 | |||||
Ik kwam er net achter dat ik dus PHP 5.3 had, snel geupdate naar 5.5 ![]() Gaaf ook dat de salt iedere keer veranderd. | ||||||
Chandler | dinsdag 8 oktober 2013 @ 07:38 | |||||
Ik heb een script geschreven en wil die via codecanyon verkopen, echter kreeg ik een email terug met de volgende mededeling: Please make sure the code adheres to PEAR standards. Nu heb ik de PEAR documentatie gelezen en geinstalleerd onder PHP zodat ik mijn script kan checken, echter zie ik dat er bergen met 'fouten' uitkomen die volgens mij geen fouten zijn maar keuzes in 'opmaak'. Nu mijn vraag, wat bedoelen ze precies met bovenstaande tekst en zal de code volgens phpcs 100% goed moeten zijn? want dan moet ik zelfs regels gaan afbreken bij 8x karakters... iemand een idee? | ||||||
Light | dinsdag 8 oktober 2013 @ 07:53 | |||||
Volgens deze pagina zou het gebruik van de term "PEAR standards" niet helemaal terecht zijn. Waarschijnlijk moet je de WordPress standards hanteren. En ja, dat kan heel goed betekenen dat er wel een maximum aantal tekens per regel is. | ||||||
Tijn | dinsdag 8 oktober 2013 @ 08:02 | |||||
Sowieso een beetje raar om code te verkopen met zulke lange regels erin. | ||||||
Chandler | dinsdag 8 oktober 2013 @ 12:59 | |||||
@Tijn: wat is raar aan lange regels? verklaar je nader!! Oh het betreft een PHP app waarvan ze de broncode toch niet mogen aanpassen (alleen gebruiken) | ||||||
KomtTijd... | dinsdag 8 oktober 2013 @ 13:12 | |||||
? nee hoor, alleen als je het wachtwoord aanpast. Het grappige van Bcrypt is dat de hash ook de salt bevat om die hash te genereren. Je gebruikt dus eigenlijk de hash direct als salt. Maar met password_hash() gebeurt dat onder water. Als je geen PHP5.5 kunt draaien moet je even zelf een bcrypt-functie maken, stelt niet zoveel voor. MD5 hashes gebruiken voor passwords mag inmiddels wel een doodzonde heten op programmeergebied. | ||||||
Pakspul | dinsdag 8 oktober 2013 @ 13:15 | |||||
Om de programmeerwereld een gunst te verlenen moeten ze die er gewoon uit flikkeren. Tig sites die dan op hun bek gaan, maar dan wel inzien dat ze hun code moeten aanpassen. | ||||||
KomtTijd... | dinsdag 8 oktober 2013 @ 13:17 | |||||
MD5 heeft absoluut zijn waarde (integrity checks), maar niet voor password hashing. Daar is het nooit voor bedoeld geweest. | ||||||
Light | dinsdag 8 oktober 2013 @ 18:38 | |||||
Dan moeten we plaintext ook maar afschaffen, er zijn ook nog sites die wachtwoorden als plaintext opslaan... | ||||||
#ANONIEM | dinsdag 8 oktober 2013 @ 18:44 | |||||
Ik heb een keer gezien dat iemand base64 gebruikte ![]() | ||||||
Light | dinsdag 8 oktober 2013 @ 19:11 | |||||
MD5 kan helpen om vast te stellen of een bestand gewijzigd is. Maar als de hash niet gewijzigd is, kun je toch een ander bestand hebben. Daar zijn wat (oude) voorbeelden van, zoals deze: http://www.win.tue.nl/hashclash/Nostradamus/ | ||||||
zoem | dinsdag 8 oktober 2013 @ 19:15 | |||||
base64 heeft natuurlijk ook zo zijn gebruiken, zoals het encoderen van binaire data of het embedden van een image in css. Maar het heeft weinig met cryptografie te maken. | ||||||
KomtTijd... | dinsdag 8 oktober 2013 @ 19:45 | |||||
Geen enkele hash is collision vrij, maar zolang bewuste manipulatie geen issue is, is de toevalsfactor zo klein dat je prima MD5 kunt gebruiken. | ||||||
#ANONIEM | dinsdag 8 oktober 2013 @ 22:42 | |||||
Ja, dat snap ik ![]() ![]() | ||||||
zoem | dinsdag 8 oktober 2013 @ 22:44 | |||||
![]() | ||||||
Pakspul | woensdag 9 oktober 2013 @ 10:04 | |||||
Ik ga nu MySQL opbellen om VARCHAR af te schaffen! ![]() | ||||||
x-tremed | woensdag 9 oktober 2013 @ 10:51 | |||||
ik zit ook met een php probleempje, zelf voldoende ervaring met cms systemen maar zelf iets van scrap opbouwen lukt totaal niet. Voor een projectje wat ik aan het testen ben moet ik straks een URL aanroepen ( site2.nl/variabel1/variabel2) waarbij beide variabelen uit enkel cijfers bestaan. nu is het probleem dat ik vanaf mijn eigen site als output van de 2 variabelen het tweede getal met een komma krijg. Ik moet dus eigenlijk een simpel php script hebben wat www.site.nl/script/1234/56,78 redirect naar www.site2.nl/script/1234/5678 of wat ook mag indien makkelijker www.site.nl/script.php?var1=1234&var2=56,78 redirect naar www.site2.nl/script/1234/5678 [ Bericht 17% gewijzigd door x-tremed op 09-10-2013 10:59:31 ] | ||||||
Maringo | woensdag 9 oktober 2013 @ 11:25 | |||||
En wat heb je zoal geprobeerd? | ||||||
Crutch | woensdag 9 oktober 2013 @ 19:20 | |||||
Zoek op str_replace(); | ||||||
Crutch | woensdag 9 oktober 2013 @ 19:24 | |||||
Of lees of het met een .htaccess kan. | ||||||
BlueNumber | zaterdag 12 oktober 2013 @ 19:43 | |||||
Ik heb in een php-script een if-statement dat in geval dat true is een redirect moet doen. Dus bijvoorbeeld. if($x==1){ header('Location: user.php'); } Als ik het lokaal test, dan werkt de redirect. Echter, als ik het upload naar de host om het te testen op mn website, dan wordt de redirect niet uitgevoerd. Is er een reden waarom een redirect wel lokaal, maar niet online werkt? | ||||||
zoem | zaterdag 12 oktober 2013 @ 19:48 | |||||
Kan meerdere oorzaken hebben. Zorg in ieder geval dat je niets output vóórdat de headers verstuurd worden. Dus een rondzwervende spatie op een lege regel kan al een boosdoener zijn. Verder: zet error_reporting en display_errors aan. Probeer ook volledige (absolute) urls te gebruiken en niet alleen de bestandsnaam in de location header: php.net: header() Dus lees altijd de documentatie goed door ![]() | ||||||
BlueNumber | zaterdag 12 oktober 2013 @ 21:00 | |||||
Ik heb er maar redirects mbv javascript van gemaakt. | ||||||
zoem | zaterdag 12 oktober 2013 @ 21:20 | |||||
En als je javascript uit hebt staan? | ||||||
BlueNumber | zaterdag 12 oktober 2013 @ 21:40 | |||||
Dat zien we dan wel weer, het is toch nog een flutsite, maar ik wil het wel graag online testen. Ik moet het idd nog wat eleganter oplossen. | ||||||
#ANONIEM | zaterdag 12 oktober 2013 @ 21:44 | |||||
En wat als google langskomt? ![]() | ||||||
bondage | zaterdag 12 oktober 2013 @ 21:45 | |||||
Deze ook al geprobeerd? http://php.net/manual/en/function.http-redirect.php | ||||||
Chandler | zondag 13 oktober 2013 @ 15:00 | |||||
Kleine mysql vraag ![]()
deze query werkt goed, echter wil ik graag nu ook het aantal seizoenen toevoegen (in dezelfde query) maar dat lukt me nit echt... of echt niet, heb veel geprobeerd en nu las ik wat over case? maar zou iemand eens een voorbeeld kunnen schetsen (hoeft niet werkend te zijn, als het maar in de richting komt, moet er tenslotte van leren ![]() ![]() | ||||||
zoem | zondag 13 oktober 2013 @ 15:04 | |||||
Een subquery zou een optie kunnen zijn. De vraag is echter hoe de tabelstructuur eruit ziet om een inhoudelijk antwoord te kunnen geven. | ||||||
Maringo | zondag 13 oktober 2013 @ 15:55 | |||||
Tablestructuur is wel handig inderdaad. Want staat het niet bij de episodes aangegeven in welk seizoen ze zijn? | ||||||
Chandler | zondag 13 oktober 2013 @ 17:18 | |||||
Oeps, zondag hé, rook zit nog steeds in m'n hoofd... ![]() Structuur;
Ik heb hiervoor al een view aangemaakt die op dit moment de unieke serie namen met aantal afleveringen er achter, echter zou ik graag ook per serie het aantal seizoenen willen berekenen zoals bovenstaand... | ||||||
Chandler | maandag 14 oktober 2013 @ 18:43 | |||||
ben er reeds achter gewoon met count(distinct `movies`.`episode_id`). | ||||||
bondage | maandag 14 oktober 2013 @ 21:22 | |||||
Hoe heb je dit precies genormaliseerd? Als ik het zo zie sla je de naam van de serie bij elk seizoen-id op. Imo kun je hier beter een koppeltabel van maken en de serienamen los opslaan in een tabel en ook als ID in deze opslaan. Zelfde geldt voor episode en source. | ||||||
Chandler | dinsdag 15 oktober 2013 @ 07:13 | |||||
Nee ik heb het niet genormaliseerd, maar gebruik views en probeer op deze manier te normaliseren.. | ||||||
vallisarosa | dinsdag 15 oktober 2013 @ 07:52 | |||||
Ik zou toch gaan normaliseren, je krijgt je data dan ook eenvoudiger terug. | ||||||
Chandler | dinsdag 15 oktober 2013 @ 07:55 | |||||
Daar ben ik mee eens, zou zelf voor een andere opzet kiezen maar aangezien ik deze opzet steeds *geupdated* aangeleverd krijg is dit tijdelijk even nodig en vandaar dat ik daarom met 'views' wil werken... | ||||||
pascal08 | dinsdag 22 oktober 2013 @ 19:12 | |||||
Hebben jullie enig idee wat het PHP-equivalent van de volgende python functie is?
| ||||||
rekenwonder | dinsdag 22 oktober 2013 @ 21:18 | |||||
Beetje weinig context. Wat wil je? Casten misschien? | ||||||
Tijn | dinsdag 22 oktober 2013 @ 21:28 | |||||
Bedoel je intval() ofzo? | ||||||
bondage | dinsdag 22 oktober 2013 @ 21:47 | |||||
Ligt eraan waarvoor je die functie gebruikt en wat het doet... Ik heb geen verstand van Python en dit zegt me eigenlijk niets. Kan er ook niet veel over vinden trouwens. | ||||||
slacker_nl | dinsdag 22 oktober 2013 @ 22:44 | |||||
http://docs.python.org/2/library/ctypes.html http://php.net/manual/en/language.types.integer.php
| ||||||
Rockfire | donderdag 24 oktober 2013 @ 14:27 | |||||
Anders doet Google even irritant ![]() ![]() | ||||||
Pakspul | donderdag 24 oktober 2013 @ 14:31 | |||||
php.net heeft mogelijk last van mallware of een false positive van Google. | ||||||
Rockfire | donderdag 24 oktober 2013 @ 14:44 | |||||
Ja dat snap ik, maar ik gok op het laatste, dus doet Google irritant | ||||||
Pakspul | donderdag 24 oktober 2013 @ 14:47 | |||||
Nou, best aardig van Google om de waarschuwing te geven. Het is irritant aangezien je de manual nodig hebt ![]() | ||||||
Rockfire | donderdag 24 oktober 2013 @ 14:49 | |||||
Klopt ![]() Die link is niet zo makkelijk als die van php.net. Als ik de manual van een bepaalde functie wil hebben, ga ik altijd naar http://php.net/<functie> | ||||||
Pakspul | donderdag 24 oktober 2013 @ 14:50 | |||||
boo fucking whoo ![]() | ||||||
#ANONIEM | donderdag 24 oktober 2013 @ 15:04 | |||||
http://www.reddit.com/r/P(...)n_officially/ccyjvw4 Oplossing: http://www.reddit.com/r/P(...)n_officially/ccyk3ii | ||||||
Pakspul | donderdag 24 oktober 2013 @ 15:07 | |||||
Als ik die regels aan mijn hosts file moet gaan toevoegen dan heb ik nog niet echt het idee dat zij het hebben opgelost. | ||||||
#ANONIEM | donderdag 24 oktober 2013 @ 15:08 | |||||
Maar dan zit jij in ieder geval veilig. | ||||||
KomtTijd... | donderdag 24 oktober 2013 @ 15:51 | |||||
De userprefs.js file was daadwerkelijk infected. Het irritante is dat het nu weer 24 uur duurt voordat Google dat registreert. Zeker met een website met zo'n grote impact. | ||||||
KomtTijd... | donderdag 24 oktober 2013 @ 15:57 | |||||
Die titel ![]() ![]() Daar kon je natuurlijk op wachten. | ||||||
MichielPH | maandag 28 oktober 2013 @ 15:29 | |||||
Volgens mij vrij simpel op te lossen, maar kan zo snel geen eenvoudige oplossing bedenken: Ik heb een tabel met per gebruiker per dag gegevens. De dag is een int, zaterdag is 6, zondag is 0, maandag is 1, etc. Ik vraag gisteren, vandaag en morgen op. Gaat prima. Echter, ik wil het ook gesorteerd op datum weergeven. Hoe doe ik dat? Als ik gisteren de query had uitgevoerd, krijg ik dus 3 rijen met als dag 0, 1 en 6 terug. Ik wil het in volgorde 6, 0, 1 zien. Kan iemand een zetje in de goede richting geven? | ||||||
KomtTijd... | maandag 28 oktober 2013 @ 15:38 | |||||
je sorteert gewoon op de date lijkt me? | ||||||
#ANONIEM | maandag 28 oktober 2013 @ 15:41 | |||||
Waarom een int? Gewoon een date nemen. | ||||||
KomtTijd... | maandag 28 oktober 2013 @ 15:46 | |||||
Sowieso is het onzin de dag los op te slaan, die kun je gewoon met DAYOFWEEK(date) uit je date destilleren. | ||||||
MichielPH | maandag 28 oktober 2013 @ 15:47 | |||||
Omdat het geen date is, het is weekdag. Wat voor vandaag geldt, geldt ook voor volgende week maandag. Per gebruiker heb ik dus maar 7 rijen welke het hele jaar gelden. [ Bericht 5% gewijzigd door MichielPH op 28-10-2013 15:54:52 ] | ||||||
KomtTijd... | maandag 28 oktober 2013 @ 15:55 | |||||
Je hebt dus maar 7 records, die als een soort loopje een weekrooster vormen? En een bijzondere functie die gisteren, vandaag en morgen ophaalt? Dan zou ik die bijzondere functie ze ook gewoon in die volgorde in een array laten stoppen. | ||||||
MichielPH | maandag 28 oktober 2013 @ 16:01 | |||||
Het probleem is echter dat de volgorde dus verandert per dag: vandaag zou het resultaat van weekdagen zijn: 0, 1, 2 (zo, ma, di). Gisteren was dit 0, 1, 6 ( zo, ma, za), terwijl ik 6, 0, 1 (za, zo, ma) wil. | ||||||
KomtTijd... | maandag 28 oktober 2013 @ 16:05 | |||||
hoe ziet je functie er dan uit? | ||||||
vallisarosa | maandag 28 oktober 2013 @ 16:10 | |||||
Of gebruik een soort van decode functie als dat kan in je sql. | ||||||
MichielPH | maandag 28 oktober 2013 @ 16:10 | |||||
Ik gebruik CakePHP, dus de query zo:
| ||||||
MichielPH | maandag 28 oktober 2013 @ 16:21 | |||||
Kan ik wat mee! | ||||||
Crutch | maandag 4 november 2013 @ 18:13 | |||||
Wat is het rustig hier.. Zijn we ineens goed in PHP geworden? | ||||||
pascal08 | donderdag 7 november 2013 @ 01:45 | |||||
Hoe kan ik ervoor zorgen dat de mappenstructuur met XAMPP hetzelfde werkt als met een webserver? Het lijkt zo simpel, maar ik kom er niet uit. Als ik een website upload op een server dan zorg ik ervoor dat alles wat niet voor jan-en-alleman beschikbaar mag zijn buiten de 'public' folder komt. Als ik dan bijvoorbeeld een URL in een CSS file definieer dan is de root gelijk aan de 'public' folder. Voorbeeld:
Ik zou styles.css includen met het pad: "/assets/css/styles.css" Als ik echter lokaal wil testen met XAMPP dan wordt deze URL: "localhost/assets/css/styles.css", omdat XAMPP localhost als root ziet. Hoe zorg ik ervoor dat ik niet alle URL's steeds hoef te veranderen of de configuratie XAMPP hoef te veranderen voor verschillende projecten? | ||||||
pascal08 | donderdag 7 november 2013 @ 02:45 | |||||
Ik heb het antwoord al gevonden: http://www.codingcereal.c(...)calhost-using-xampp/ | ||||||
KomtTijd... | donderdag 7 november 2013 @ 09:33 | |||||
xamp werkt niets anders dan een online host, het is allebei gewoon apache. zet gewoon een base url in je config bestand, dan heb je nooit gezeik meer als je je website verplaatst. | ||||||
ursel | donderdag 7 november 2013 @ 10:04 | |||||
Bezoek tegenwoordig ook wel eens een PHP gebruikersgroep hier in de buurt waar ik ook mijn vragen kwijt kan. ![]() | ||||||
Juicyhil | donderdag 7 november 2013 @ 14:01 | |||||
Ik zit vandaag de dag meer op .NET ![]() | ||||||
pascal08 | donderdag 7 november 2013 @ 14:15 | |||||
Maar dan zal ik toch al die duizenden URL's moeten bewerken met dat stukje base url. | ||||||
papernote | donderdag 7 november 2013 @ 21:52 | |||||
Gewoon een find-and-replace met "localhost" en "$config->baseUrl()"? | ||||||
Pakspul | donderdag 7 november 2013 @ 22:33 | |||||
Laat het een les zijn, je kan zelfs een php script er voor schrijven. | ||||||
slacker_nl | donderdag 7 november 2013 @ 22:36 | |||||
Daarvoor heb je toch gewoon relatieve paden..? | ||||||
Maringo | donderdag 7 november 2013 @ 23:21 | |||||
Als het er duizenden zijn, vraag ik me toch af of er niet nog ergens wat fout gaat.. | ||||||
pascal08 | donderdag 7 november 2013 @ 23:26 | |||||
Dat vraag ik me ook altijd of als ik de reactie zo lees. ![]() | ||||||
KomtTijd... | donderdag 7 november 2013 @ 23:32 | |||||
als het goed is alleen de base url in je template. Als de rest nu goed gaat met relatieve paden, zal dat ook goed blijven gaan. Voordeel van ditsoort server-specifieke dingen in een config bestand zetten is dat je heel gemakkelijk kunt kopiëren van de ene naar de andere host, door gewoon al je bestanden behalve de config.php te kopiëren. | ||||||
pascal08 | donderdag 7 november 2013 @ 23:47 | |||||
Ook de URL's van sprites, afbeeldingen, ajax-url's etc. Wat je zegt over config files is iets dat steeds beter tot me door begint te dringen. Ik ben nu Laravel aan het ontdekken en ik vind het eigenlijk best een goed framework. CodeIgniter is dood aan het gaan toch? | ||||||
Swetsenegger | vrijdag 8 november 2013 @ 16:18 | |||||
Ik ben bezig front-end editting te bouwen in een webshopje wat ik ooit geknutseld heb. Daarin komt nu dit prachtige stukje proza voor
Feitelijk veranderd dit een span met een nummertje in een input veld met het nummertje in de value van dat input veld:
En onblur moet hij dan het form submitten. Het form ziet er NA de DOM wijziging als volgt uit
Het form submit ook keurig, maar... alleen de id value wordt gesubmit en ac value niet. Iemand een idee? | ||||||
Rockfire | vrijdag 8 november 2013 @ 16:22 | |||||
Zo een eerste snelle blik: het input veld van ac heeft geen type. | ||||||
KomtTijd... | vrijdag 8 november 2013 @ 16:31 | |||||
type default naar text, zou geen probleem mogen zijn. misschien wordt de onblur getriggerd vóór de change ofzo? | ||||||
Swetsenegger | vrijdag 8 november 2013 @ 16:50 | |||||
Klopt, maar ik heb hem voor de zekerheid ook een type toegevoegd met hetzelfde resultaat ![]() Nee, onclick word de span input, dat zie ik ook als ik het element inspecteer. En pas daarna wordt de onblur getriggerd. Dus in de DOM is het element aangepast voor het form gesubmit wordt. De submit zit ook in de input, dus kan uberhaupt niet onblur getriggerd worden als de input er nog niet is denk ik? | ||||||
papernote | zaterdag 9 november 2013 @ 11:39 | |||||
Weet je zeker dat het formulier er na de DOM-wijziging zo uit ziet als je hier plaatst? Valt het gegenereerde input-element niet per ongeluk buiten het formulier? Als je de inhoud van de onblur nu eens vervangt door iets als alert(this.parent), zit je dan echt in het formulier? | ||||||
Swetsenegger | zaterdag 9 november 2013 @ 11:50 | |||||
Ik ben er al uit. Het form werd gestart in de ene TR en geëindigd in de ander. En dat vinden browsers blijkbaar niet leuk. | ||||||
papernote | zaterdag 9 november 2013 @ 12:49 | |||||
Dat lijkt me inderdaad geen valide HTML. Ik zou de form om je hele tabel heen gooien en/of om de tr-tags heen. | ||||||
Swetsenegger | zaterdag 9 november 2013 @ 12:55 | |||||
Dat gaat niet aangezien er in de tabel nog wat forms staan voor het winkelmandje en wishlist. ![]() Dus ik heb nu per item blok (artikelcode + naam, omschrijving, prijs) een form. Ik submit toch per onderdeel onBlur, dus dat is sowieso geen probleem. Deze edit mogelijkheid is natuurlijk alleen beschikbaar voor admins die zijn ingelogged. Dus deze wat messy code staat niet in de gebruikers front-end. | ||||||
papernote | zaterdag 9 november 2013 @ 13:14 | |||||
Kun je niet één groot formulier maken met meerdere submit-opties (met dezelfde name en een verschillende value) en dan op de server bepalen wat je wilt doen? | ||||||
Swetsenegger | zaterdag 9 november 2013 @ 13:34 | |||||
Heb ik ook heel even naar gekeken. Vereist wel een compleet andere opbouw en dat valt wel een beetje buiten de scope eigenlijk. Op zich werkt het nu goed. En ik heb het goed commented ![]() | ||||||
TwenteFC | zaterdag 9 november 2013 @ 17:59 | |||||
![]() | ||||||
Skunk-m | maandag 11 november 2013 @ 15:41 | |||||
Ik heb bij een verse installatie van phpbb3 de config tabel van mn oude phpbb3 in mysql gezet, maar die instellingen worden helemaal niet gebruikt.. Er staan gewoon alle standaard dingen.. als bijv: yourdomain.com A short text to describe your forum en de rest is ook allemaal standaard. Weet iemand hoe dat kan? | ||||||
Devolution | maandag 11 november 2013 @ 16:08 | |||||
En je hebt gecheckt dat in de config table van je website database jouw waarden staan (dat de default config table dus overschreven is)? En weet je ook zeker dat phpBB3 zijn configuratie-instellingen daar ook vandaan haalt? | ||||||
Skunk-m | maandag 11 november 2013 @ 16:44 | |||||
hij staat goed in mysql ja.. Toen ik hier op mijn lokale pc die tabel gekoppeld had aan een verse install (zelfde versie als de oude was.. nou weet ik dit niet zeker maar volgens mij liet ie het toen ook niet zien totdat ik em geupdate had.. maarja nou is ie volledig up to date dus dat schiet niet op. | ||||||
Chandler | woensdag 13 november 2013 @ 08:38 | |||||
-- [ Bericht 100% gewijzigd door Chandler op 13-11-2013 08:42:58 ] | ||||||
boem-dikkie | woensdag 13 november 2013 @ 13:43 | |||||
Heet de database ook hetzelfde? | ||||||
Chandler | woensdag 13 november 2013 @ 19:42 | |||||
Wat vinden jullie van me scrippie? ![]() http://pastebin.com/g2xTLLtP | ||||||
Light | woensdag 13 november 2013 @ 21:19 | |||||
Onleesbaar. | ||||||
Pakspul | woensdag 13 november 2013 @ 21:39 | |||||
Bagger | ||||||
Juicyhil | woensdag 13 november 2013 @ 21:40 | |||||
Lekker vatbaar voor SQL Injection | ||||||
Juicyhil | woensdag 13 november 2013 @ 21:40 | |||||
en wat de twee heren boven mij zeiden | ||||||
Light | woensdag 13 november 2013 @ 22:39 | |||||
Niet uitvoerbaar. Als ik de code copy-paste vanaf pastebin, krijg ik de melding "This archive is broken, get a good version". Dat blijkt dan over table structure, table data en file data te gaan. | ||||||
Crutch | woensdag 13 november 2013 @ 22:41 | |||||
dafuq is this? | ||||||
GI | donderdag 14 november 2013 @ 07:44 | |||||
What did I just read ? | ||||||
Chandler | donderdag 14 november 2013 @ 08:08 | |||||
@Light: Klopt, dat de data onleesbaar is, moet zo zijn. @Pakspul; bedankt voor je zeer nuttige reactie van 1 woord.. Juicyhil: Klopt, maar het script heeft ook niet als doel beschikbaar te zijn voor de 'hele' wereld... maar opbouwende tips kan ik altijd wat mee ![]() @Light: Het klopt inderdaad dat het om bestands en mysql data te gaan, en daaromheen zit een installer verwerkt, het rare is alleen dat het bestand bij mij deze melding niet geeft en bij jullie wel... @Crutch: Versleutelde 'data' met een installer er aan vast geknoopt. @GI: Read above ![]() Het is vreemd dat de data op jullie systemen als 'broken' wordt weergegeven terwijl hier de code uitgevoerd kan worden, snap niet geheel waar het probleem zit maar daar moet ik dus nog mee spelen.. | ||||||
Light | donderdag 14 november 2013 @ 08:26 | |||||
Alvast een tip dan: Magic constants horen te worden geschreven met hoofdletters, dus __DIR__ en __FILE__. | ||||||
Chandler | donderdag 14 november 2013 @ 08:39 | |||||
Thanks, kleine vraag; jullie testen vast allemaal in een linux omgeving? het probleem zit hem in PHP_EOL die in windows omgeving anders is dan in de linux omgeving.... [ Bericht 44% gewijzigd door Chandler op 14-11-2013 08:46:32 ] | ||||||
mstx | donderdag 14 november 2013 @ 08:48 | |||||
Op Debian werkt het niet. | ||||||
Chandler | donderdag 14 november 2013 @ 08:50 | |||||
Daar ging ik al vanuit, alles anders dan Windows servers zal deze archive als broken betitelen... komt door PHP_EOL in PHP die onder windows anders is dan linux ..... | ||||||
KomtTijd... | donderdag 14 november 2013 @ 09:32 | |||||
PHP_EOL gedraagt zich op ieder platform hetzelfde, namelijk: geef de line-ending van dit platform. Als je specifiek een windows line-ending nodig hebt, slaat het dus nergens op om PHP_EOL te gebruiken. | ||||||
Chandler | donderdag 14 november 2013 @ 09:59 | |||||
KomtTijd; Klopt! daar ben ik dan nu ook achter gekomen, dus ga ik daar mee aan de slag! | ||||||
HalveZware | donderdag 14 november 2013 @ 10:35 | |||||
Het doet pijn aan m'n ogen.... | ||||||
Pakspul | donderdag 14 november 2013 @ 10:40 | |||||
Ok, reactie in één woord: MVC | ||||||
rekenwonder | donderdag 14 november 2013 @ 17:02 | |||||
Now you have two problems? Als in: hoe is MVC een oplossing voor de problemen van Chandler? :-) | ||||||
KomtTijd... | donderdag 14 november 2013 @ 17:07 | |||||
Je mag toch op zijn minst wel je templates en je code gescheiden houden, niets problematisch aan hoor. | ||||||
Skunk-m | donderdag 14 november 2013 @ 17:28 | |||||
Ik moest de cache legen in phpbb en daarna deed ie het.. Maar nu is mijn vraag waarom phpbb ./ voor de links zet voor smilies, ranks etc. dus als mn smilie path is ingesteld als images/smilies (gewoon standaard dus) dan maakt ie er ./images/smilies van waardoor de afbeelding niet word weergegeven. ?? | ||||||
ViPeRII | donderdag 14 november 2013 @ 18:08 | |||||
Dat is opzich handig, aangezien je dan geen "harde" paden hoeft te gebruiken... | ||||||
Chandler | donderdag 14 november 2013 @ 20:15 | |||||
Ja? slaat in mijn ogen compleet de plank mis ![]() ![]() Niet als het doel 1 bestand is, zonder includes! of wat voor externe bestanden dan ook ![]() ![]() ![]() Maar goed, heb het probleem reeds 'denk ik' opgelost, nog even op een paar externe servers testen plus weer de nodige veranderingen (verbeteringen)... Oh en kan natuurlijk altijd de nodige suggesties gebruiken, het kan altijd mooier, gemakkelijker of logischer ![]() [ Bericht 4% gewijzigd door Chandler op 14-11-2013 20:25:41 ] | ||||||
rekenwonder | donderdag 14 november 2013 @ 20:18 | |||||
MVC is zo 2012. MVP, MVVM, noem het maar op! | ||||||
Chandler | zaterdag 16 november 2013 @ 11:39 | |||||
LOL wat is dan 2013? ![]() ![]() Maaruh een update: http://pastebin.com/VtwXQHur voor diegene die het leuk vind om dingen te testen en opbouwend kritiek wil geven ![]() Oh pass is password123 ![]() | ||||||
ViPeRII | zondag 17 november 2013 @ 00:58 | |||||
T werkt, op je quit knop na. deze brengt alles terug naar de 1e stap van je script. Vervolgens zou het mooi zijn als je je script ook op andere "gebruikelijke" database systemen zou kunnen installeren, welke makkelijk te scripten zijn via PDO; Dus: mssql, postgres en sqlite, om de gebruiker wat meer opties te geven. Daarnaast wil ik je ten zeerste aanraden het script netjes te maken, oftewel alles netjes in OOP schrijven in plaats van de procedural code die je nu geschreven hebt. Dat lijkt nu onzin, maar naar mate dat je script groeit, heb je daar altijd wat aan. Ook dien je je unsets te testen om te kijken of ze wel dan niet geset zijn, je weet maar nooit wat er in je script gebeurd...Dat ben je bijvoorbeeld vergeten bij stap 7; Ook heb ik nog de vraag waarom je de set_time_limit gebruikt.. Voor het mooie zou ik ook het aantal stappen wat proberen te verminderen. | ||||||
Light | zondag 17 november 2013 @ 13:12 | |||||
Je gebruikt twee keer "case 7:". Dat werkt niet, iedere case moet uniek zijn. En $_SESSION unsetten is ook niet netjes. Da's een PHP superglobal, die moet je niet willen unsetten. Je kunt er wel een andere waarde aan geven, bijvoorbeeld null. | ||||||
Chandler | zondag 17 november 2013 @ 13:30 | |||||
Thanks voor jullie inhoudelijke reacties, de installer heeft een datablock en een script onderdeel, het script onderdeel ga ik niet oop maken, zou kunnen maar zie daar zelf het nut niet van in. Een keuze in database systemen ben ik zeker voor en gaat ook zeker verwerkt worden in het script en qua unset moet ik inderdaad nog wel het een en ander aanpassen... oh 2x case 7 had ik blijkbaar over het hoofd gezien... ooeps.. zelfde als set_time_limit, die heb ik gebruikt om te testen, iets wat bij kleine 'installers' echt niet nodig is maar bij installers van 30mb misschien wel, daar moet ik het allemaal nog op testen. Paar vragen: - Waarom stappen verminderen? zoveel stapjes zijn het niet? kijk eens naar programma's die je onder windows installeert? die hebben vaak ook vele stappen.. - Waarom OOP? zoveel code zit er niet in zeg maar... op zich zou't wel gemakkelijk zijn als ik er een ander ontwerp omheen wil gooien! - Andere tips? Oh de quit button is domweg bedoeld om de installer te resetten... je begint weer bij het begin want echt 'afsluiten' van het script zoals een programma gaat niet werken... tenzij ik window.close() ga gebruiken ![]() thanks voor inhoudelijk feedback, maar hoe voelde de installer verder aan? | ||||||
slacker_nl | zondag 17 november 2013 @ 13:36 | |||||
Je hoeft er m.i. niet per se OOP van te maken, maar het helpt wel (ik ben er wel een voorstander van). Maar je zou wel aparte functies kunnen maken, dat maakt je script makkelijker testbaar. Je kan dan elke functie testen op de werking. Dat lukt niet in je huidige model. Verder zou ik wel iets aan je code conventies gaan doen:
Dat leest en edit prettiger. | ||||||
Chandler | zondag 17 november 2013 @ 14:19 | |||||
Mijn OOP is extreem brak, maak daarin vaak fouten en leer daar pas van als iemand er wat over zegt (mijn manier van leren). Ik zal eens kijken wat ik allemaal in functies kan stoppen wat er nu nog niet inzit... Klopt, daarin heb je totaal gelijk alleen hoeft een gemiddelde gebruiker van dit script niets met de data, zelfde als jij niets moet met de inhoudt van een installer anders dan de installer zijn werk laten doen... dus de data hoeft er niet mooi uit te zien (data block) maar qua scripten werkt het zeker beter... verder nog grote php fouten gezien? nee toch? ![]() | ||||||
slacker_nl | zondag 17 november 2013 @ 14:29 | |||||
Het gaat me erom dat als je later in dat script kijkt dat het makkelijk edit en leest. Dat de gebruiker er niet in hoeft te lezen.. maar andere coders wel en die wil je wel helpen met schone, zelf-gedocumenteerde code. Je kan toch heel makkelijk een class maken met functies en dan
| ||||||
Chandler | zondag 17 november 2013 @ 14:49 | |||||
Ook met OOP moet je je inlezen in code want ->run() zegt ook compleet niets, want wat gebeurd er in al die functies? dus denk dat documentatie van het script zelf stukken belangrijker is.. Al zou ik het wel leuk vinden om er een OOP versie van maken maken dat ik zo de schil (layout/vormgeving) on the fly kan aanpassen! ![]() | ||||||
slacker_nl | zondag 17 november 2013 @ 15:02 | |||||
Je moet altijd je documentatie goed op orde hebben. Maar dat staat los van de manier van code. Al helpt het ook dat je code zichzelf uitlegt. Maar je functies moeten gewoon gedocumenteerd zijn. | ||||||
Chandler | zondag 17 november 2013 @ 16:19 | |||||
moeten is onzin, handig true; zal ik ook zeker gaan doen, maar blijkbaar vinden jullie het idee toch best leuk ![]() ![]() | ||||||
slacker_nl | zondag 17 november 2013 @ 16:21 | |||||
Op m'n werk is het moeten. Want anders zegt de testsuite: je hebt de pod niet op orde en dan falen de tests. Overigens zeg ik niks over je idee, want ik zou je script en je installer in aparte files frotten, maar dat is mijn mening. | ||||||
Chandler | zondag 17 november 2013 @ 18:10 | |||||
Waarom in aparte files? leg dat eens uit? | ||||||
slacker_nl | zondag 17 november 2013 @ 18:43 | |||||
Testbaarheid. | ||||||
Chandler | zondag 17 november 2013 @ 18:46 | |||||
Ik snap je nog steeds niet, want ook met een 'iets' groter bestand is testen allemaal geen probleem hoor ![]() | ||||||
slacker_nl | zondag 17 november 2013 @ 19:06 | |||||
Do one thing and do it well. En ik doel inderdaad dat je 1 module per keer test. Waarom zou je allemaal modules/klasses laden als je er maar eentje wilt hebben? | ||||||
Chandler | maandag 18 november 2013 @ 01:09 | |||||
Zo werk ik inderdaad ook al, alle code is gewoon al getest (toen nog niet op meerdere platformen maar goed) met de losse modules die ik toen werkend met elkaar heb verbonden in het huidige script. Ik zal vannacht nog eens naar wat puntjes van het script kijken (heb toch nachtdienst, dus alle tijd) | ||||||
Light | maandag 18 november 2013 @ 07:54 | |||||
Hoe heb je die code getest? | ||||||
Chandler | maandag 18 november 2013 @ 10:18 | |||||
Gewoon 1 scriptje met daarin de class/functie en daaronder het test gedeelte? | ||||||
HalveZware | maandag 18 november 2013 @ 13:16 | |||||
Nog goede suggesties voor een test-suite? | ||||||
zoem | maandag 18 november 2013 @ 13:20 | |||||
Wat betreft php: PHPUnit icm een CI-omgeving. | ||||||
slacker_nl | maandag 18 november 2013 @ 13:21 | |||||
Onder PHP, ik ken er geen. Onder Perl heb je prove. | ||||||
#ANONIEM | maandag 18 november 2013 @ 13:52 | |||||
Sjooooooooooow ik was aan het kloten met dat MongoDB gebeuren, ik heb dus een Auth template voor mijzelf gemaakt, is wel een beetje rommelig en comments heb ik in het Engels gezet btw... Voor de liefhebbers... https://anonfiles.com/file/9e49f9c2059cdd78233e284435781ffa En dat MongoLab remote hosting is gewoon gratis tot 500MB ![]() ![]() Overigens heb ik het lokaal werkend gehad met alleen Ampps te installeren en daarvandaan MongoDB starten. Er is wel echt belachelijk weinig documentatie over MongoDB met de PHP driver te vinden zeg... En wat er te vinden valt is verouderd of niet noob-friendly... [ Bericht 10% gewijzigd door #ANONIEM op 18-11-2013 14:54:46 ] | ||||||
KomtTijd... | maandag 18 november 2013 @ 14:35 | |||||
Waarom in hemelsnaam een NoSQL database voor een loginsysteem ![]() ...en zie ik daar MD5 password hashes? ![]() ![]() ![]() | ||||||
#ANONIEM | maandag 18 november 2013 @ 14:48 | |||||
Waarom niet? Het is een template, en er staat ook nog een comment erover erbij man ![]() [ Bericht 3% gewijzigd door #ANONIEM op 18-11-2013 14:50:40 ] | ||||||
Sitethief | maandag 18 november 2013 @ 14:52 | |||||
Ik heb zelf goede ervaringen met CouchDB ![]() | ||||||
KomtTijd... | maandag 18 november 2013 @ 15:16 | |||||
Normaliter wil je behoorlijk joinen met je users Daar heb ik niet naar gekeken. Maar MD5 gebruiken voor passwordhashes zou gewoon bij wet verboden moeten zijn. | ||||||
raptorix | maandag 18 november 2013 @ 15:22 | |||||
Want met no SQL databases zou je niet kunnen joinen? Ik bel gelijk even Twitter en Facebook dat hun architectuur niet klopt! | ||||||
KomtTijd... | maandag 18 november 2013 @ 15:24 | |||||
Het kan, maar er is geen reden om het jezelf extra moeilijk te maken. | ||||||
raptorix | maandag 18 november 2013 @ 15:26 | |||||
Waarom zou het moeilijk zijn? Zo moeilijk is het niet om een simpele join te maken in MongoDb Edit: ik bedoel dit zul je wel buiten MonngoDB moeten doen met een extra actie. Overigens niet echt nodig, in no Sql hoef je je niet aan relationele principes te houden, sterker nog het is zelfs erg niet de bedoeling ![]() [ Bericht 21% gewijzigd door raptorix op 18-11-2013 15:41:07 ] | ||||||
Light | maandag 18 november 2013 @ 19:35 | |||||
En vervolgens heb je die classes en functies naar een ander bestand gekopieerd en dat is je installer? Da's dus niet de code die je getest hebt, da's een kopie van die code. Dat maakt in zoverre verschil dat je aanpassingen twee keer moet doen als je ze ook wilt testen. Daarom dus classes en functies in 1 bestand, je tests in een ander bestand (en dan kun je gewoon met require de juiste bestanden laden). En als je dan toch bezig bent, kijk ook eens naar PHPUnit. Dan heb je ook mogelijkheden om excepties en dergelijke te testen zonder dat je daar zelf nog veel code voor moet schrijven. Overigens wel goed dat je al aparte functies maakt om code te testen ![]() | ||||||
Chandler | maandag 18 november 2013 @ 19:52 | |||||
Ja en nee, de installer is een 'front' voor de data... de data en 'front' worden samen gevoegd in het script dat de installer (aan) maakt. Qua testen heb je gelijk, maar vaak maak ik bv een class/functie en die test ik ook gewoon in het zelfde bestand van de class/functie waarbij ik dan gewoon andere classes/functies include (voor mijn mvc heb ik per functie een apart php bestand, altijd gemakkelijk met debuggen). Dus bijna het zelfde.. In dit project specifiek moet ik inderdaad dan zaken twee keer moet herhalen. Ik zal eens naar PHPUnit kijken! Maar heb je voor dit projectje nog suggesties? ideeën? verbeter punten? ![]() | ||||||
#ANONIEM | maandag 18 november 2013 @ 19:54 | |||||
Heb je al iets aan je formatting gedaan? Protip: PHPStorm, werkt geweldig met PHPunit trouwens. | ||||||
Crutch | maandag 18 november 2013 @ 20:05 | |||||
PHPStorm is sowieso überbaas ![]() | ||||||
#ANONIEM | maandag 18 november 2013 @ 20:51 | |||||
Alleen het typen in Sublime vind ik toch ietsiepietsie prettiger ![]() //Feit: ietsiepietsie is een Nederlands woord// [ Bericht 3% gewijzigd door #ANONIEM op 18-11-2013 20:51:43 ] | ||||||
Crutch | maandag 18 november 2013 @ 21:19 | |||||
Waar ligt het aan dat het daarin fijner is? | ||||||
#ANONIEM | maandag 18 november 2013 @ 21:21 | |||||
Ik vind die autofill echt tof en voor de rest is het denk ik gewenning. | ||||||
Chandler | dinsdag 19 november 2013 @ 08:55 | |||||
Hoe bedoel je met formatting? de stijl waarop ik mijn code schrijf? pear style? gelijk een andere vraag; is dit netjes? of moet/kan het anders?
[ Bericht 71% gewijzigd door Chandler op 19-11-2013 15:36:06 ] | ||||||
#ANONIEM | dinsdag 19 november 2013 @ 16:21 | |||||
Da's perfect imo, nu ik je code eigenlijk bekijk is er niks mis met de netheid. Was een illusie ![]() | ||||||
ursel | dinsdag 19 november 2013 @ 16:41 | |||||
Ik schrijf de 'as' in een foreach altijd met kleine letters. Eigenlijk nog nooit met hoofdletters gezien, bhelave in Queries. ![]() | ||||||
zoem | dinsdag 19 november 2013 @ 16:45 | |||||
| ||||||
Boze_Appel | dinsdag 19 november 2013 @ 16:51 | |||||
Je mixt een indexed met een associative array. Alhoewel het technisch kan is zoiets meestal een recept voor gezeik. Kies het een of het ander, niet mengen. | ||||||
Chandler | dinsdag 19 november 2013 @ 17:25 | |||||
Hahaha, zal ongetwijfeld mede mogelijk gemaakt zijn door mijn schrijf style! ![]() SUPER LOL, eigenlijk moet AS ook met kleine letters, maar schrijf het al jaren als AS (zal wel uit mijn basic tijd komen...) oh nu ik het mij bedenk is het waarschijnlijker dat ik het van SQL heb overgenomen (daar schrijf ik functies altijd in hoofdletters en variabelen/tabellen/velden etc in kleine... ) maar goed... het verduidelijkt wel de leesbaarheid ($vars as $var1 => $var2) is minder leesbaar als ($vars AS $var1 => $var2) ofzo. Ik heb dit vandaag even in elkaar geflanst van een groter stukje if else statements... scheelt maar 3/4 aan regels. Vooral het gedeelte ${"$iets" . "CRC"} was leuk, om mee te spelen.. weinig mogelijkheden, erg strikt! Maar zou jij kiezen voor meerdere if elses? of hoe anders? [ Bericht 0% gewijzigd door Chandler op 19-11-2013 17:36:02 ] | ||||||
KomtTijd... | dinsdag 19 november 2013 @ 17:28 | |||||
Ik snap sowieso niet hoezo je een array van variablenamen nodig hebt om te checken of die variables geset zijn? Ik vind het gewoon een bizarre constructie. En die isset(${"$iets"."CRC"}) enzo maakt je code inderdaad flink onleesbaar, als je dat op een andere manier op kan lossen is het haast bij voorbaat al netter. | ||||||
Chandler | dinsdag 19 november 2013 @ 17:33 | |||||
Wat is er bizar aan? wees een specifiek wil je ![]() Persoonlijk vind ik het niet onleesbaar, het is nu in mijn ogen in 1 oog opslag duidelijk wat daar gedaan wordt, maar goed misschien kijk ik met een andere bril naar m'n code dan dat jij doet? Oplossen kan, kost me 2 regels extra code $var1 = ${"$var" . "var"); $var2 = ${"$var" . "varx"); maar of dat voor het voor het gebruik ook logisch is, is een tweede lijkt mij.... | ||||||
KomtTijd... | dinsdag 19 november 2013 @ 17:36 | |||||
Ik moest er 5 keer naar kijken voordat ik begreep wat er nu gebeurde. En ik zou zeggen dat je die vars direct in een object zet waar je doorheen fietst, mocht je ze stuk voor stuk willen checken. Of je checkt ze op het moment van aanmaken. | ||||||
Chandler | dinsdag 19 november 2013 @ 17:40 | |||||
Wat je zegt is logisch, maar niet voor mijn code. De data is het ene gedeelte, het script is de 2e. Het script moet logisch gezien voordat het kan werken wel checken of de data juist is... (data bestaat, niet beschadigd is).. de inhoudt (dirs, files, database data, etc) kan namelijk verschillen per 'installer'. Daarvoor is dit stukje, deze controleert of de data die (mogelijk) aanwezig is ook juist is. En idd is 30 regels ifstatements duidelijker dan 1x 9 regels code ![]() ![]() | ||||||
Devolution | woensdag 20 november 2013 @ 10:08 | |||||
| ||||||
Michaelvanb | woensdag 20 november 2013 @ 12:01 | |||||
Iemand interesse om een voetbal transfer nieuws website (engelstalig) op te starten? Ik heb een heel mooi plan liggen, alleen ik heb onderschat hoe moeilijk het is om een team/speler database te maken als je nog nooit met php/mysql hebt gewerkt en alleen wordpress kennis hebt. ![]() 50/50 split waarbij ik zorg voor content, seo, 't plan etc en de evt. partner helpt mee met technische gedeelte. theme of psd zijn al redelijk klaar. EMD domeinnaam met 200k exact search DM voor meer info ![]() | ||||||
wobbel | woensdag 20 november 2013 @ 13:45 | |||||
Oke, long2ip ( ip2long ( "185.002.241.100") ) werkt niet, maar ik zit nog wel met een probleem. Ik heb "185.002.241.100" aangeleverd gekregen (wel 1503025325 keer) en ik moet alle voorloopnullen verwijderen, in dit geval moet het dus 185.2.241.100 worden. Is daar een manier voor zonder eerst alles te exploden enzo? ![]() | ||||||
KomtTijd... | woensdag 20 november 2013 @ 13:47 | |||||
Ik zou gewoon exploden, en evt. als integers weer imploden. Lijkt me efficiënter dan een regex replace. | ||||||
wobbel | woensdag 20 november 2013 @ 13:53 | |||||
Ik heb het nu zo gedaan:
Werkt ook ![]() | ||||||
mstx | woensdag 20 november 2013 @ 13:56 | |||||
- [ Bericht 99% gewijzigd door mstx op 20-11-2013 13:57:00 ] | ||||||
wobbel | woensdag 20 november 2013 @ 13:57 | |||||
Het scriptje draait maar 1 keer, het wordt in de database gestopt en daarna zien we de data nooit meer terug ![]() | ||||||
mstx | woensdag 20 november 2013 @ 13:57 | |||||
O oke. ![]() ![]() | ||||||
wobbel | woensdag 20 november 2013 @ 13:59 | |||||
Beunhaas ![]() | ||||||
KomtTijd... | woensdag 20 november 2013 @ 14:42 | |||||
| ||||||
mstx | woensdag 20 november 2013 @ 14:56 | |||||
Wat is er mis met array_map('intval', $arr); ? ![]() | ||||||
KomtTijd... | woensdag 20 november 2013 @ 14:57 | |||||
Werkt dat ook? Dan alleen maar beter ja. | ||||||
slacker_nl | woensdag 20 november 2013 @ 18:26 | |||||
Dat moet je gewoon weigeren, dat voldoet niet aan de IPv4 syntax. '127.000.000.001' is not a valid ipv4 address.# Tests were run but no plan was declared and done_testing() was not seen. Dit is de Perl-code om IPv4/IPv6 syntax te valideren:
[ Bericht 46% gewijzigd door slacker_nl op 20-11-2013 18:33:13 ] | ||||||
Crutch | woensdag 20 november 2013 @ 18:42 | |||||
Voetbal ![]() | ||||||
TwenteFC | donderdag 21 november 2013 @ 02:37 | |||||
Ondanks je edit moet ik toch een beetje huilen van binnen. | ||||||
raptorix | donderdag 21 november 2013 @ 09:47 | |||||
Omdat? | ||||||
boem-dikkie | donderdag 21 november 2013 @ 10:03 | |||||
Als je Wordpress kennis hebt kun je dat daar toch realiseren. | ||||||
wobbel | vrijdag 22 november 2013 @ 10:52 | |||||
Ach, het is slechts 1 keer ![]() | ||||||
TwenteFC | donderdag 28 november 2013 @ 18:25 | |||||
Iemand hier die gebruik maakt van Laravel? Ik wil een child toevoegen aan de parent model en deze opslaan, alleen pakt hij de parentId niet omdat die waarde na het opslaan van de parent verspringt naar 1. Code: http://paste.laravel.com/1aMv | ||||||
xaban06 | donderdag 28 november 2013 @ 19:54 | |||||
Ik heb een tabel met producten, voorbeeld: - producten |- id |- category |- subcategory |- product_naam Ik wil de product_naam vinden van product id 25. Ik weet al wat de category en subcategory is van product 25. Wat is sneller/efficienter: SELECT id, product_naam FROM producten WHERE id = '25' SELECT id, category, subcategory, product_naam FROM producten WHERE id = '25' AND category = 'boeken' AND subcategory = 'engels' | ||||||
KomtTijd... | donderdag 28 november 2013 @ 20:06 | |||||
Aangezien WHERE id = 25 al 100% selectief is zal de rest alleen maar ballast zijn en waarschijnlijk genegeerd worden of anders de query vertragen. run beide queries 10000 keer ofzo en je weet het. | ||||||
TwenteFC | donderdag 28 november 2013 @ 20:20 | |||||
Dit, en je kan altijd even "EXPLAIN" uitvoeren om te kijken wat er allemaal gebeurt. | ||||||
xaban06 | donderdag 28 november 2013 @ 20:31 | |||||
Database is nog niet gevuld (lees: leeg), script is nog niet af. Maar wat je zegt kan wel inderdaad met demo data. Anyways, thanks! LIMIT 1 lijkt mij ook handig, niet? id is namelijk uniek. | ||||||
Crutch | donderdag 28 november 2013 @ 20:31 | |||||
Heb je in de database gekeken of je model überhaupt wordt opgeslagen? En relationships sla je op met ->push() | ||||||
KomtTijd... | donderdag 28 november 2013 @ 20:38 | |||||
Het lijkt je handig met als reden dat het niets toevoegt ![]() | ||||||
TwenteFC | donderdag 28 november 2013 @ 20:39 | |||||
->push is voor bestaande objecten, heb het ondertussen al opgelost door heel lelijk een AI veld toe te voegen en daar op te koppelen. Eloquent vind het niet leuk als je geen AI id veld hebt. Het model werd wel correct opgeslagen. | ||||||
TwenteFC | donderdag 28 november 2013 @ 20:40 | |||||
Je kan ook even een grote batch insert doen om er mee te testen natuurlijk. | ||||||
#ANONIEM | donderdag 28 november 2013 @ 20:41 | |||||
Uhm, hey guys wat vinden jullie het beste framework voor PHP? Ik heb nou al tering veel artikelen gelezen, maar ben nog niet echt wijzer... | ||||||
TwenteFC | donderdag 28 november 2013 @ 20:44 | |||||
"het beste", mijn inziens is het vrij persoonlijk wat voor jou het beste is. Ligt er maar net aan wat je wil bereiken, persoonlijk ben ik wel een fan van Laravel het programmeert lekker snel weg en er is een redelijk grote supportbase aanwezig. | ||||||
xaban06 | donderdag 28 november 2013 @ 20:50 | |||||
Ik dacht dat het wel meerwaarde had, dat het namelijk stopt met verder zoeken wanneer er een match gevonden is. Zonder LIMIT doorzoekt hij alle records dacht ik. | ||||||
KomtTijd... | donderdag 28 november 2013 @ 20:53 | |||||
Niet als je id Unique is, waar ik wel even vanuit ging natuurlijk. | ||||||
xaban06 | donderdag 28 november 2013 @ 20:54 | |||||
Is het niet ![]() | ||||||
TwenteFC | donderdag 28 november 2013 @ 20:56 | |||||
Maar hoe weet je dan dat de eerste het juiste resultaat is? Als het onderscheid gemaakt wordt op category,subcategory dan zou je sowieso de 2e query moeten gebruiken even terug te komen op je eerste vraag. Behalve dat je ze dan weg kan laten in de select, omdat je die waardes al hebt. | ||||||
xaban06 | donderdag 28 november 2013 @ 21:00 | |||||
Ik bedoel, id is altijd uniek, geen duplicates, maar ik heb het niet als unique gedefineerd omdat ik nog niet weet wat unique, primary key, index etc allemaal doen. | ||||||
TwenteFC | donderdag 28 november 2013 @ 21:01 | |||||
Wordt jouw id automatisch opgehoogd wanneer je een nieuwe toevoegt? zoja; dan is het al je PK, en uniek. | ||||||
xaban06 | donderdag 28 november 2013 @ 21:02 | |||||
Is een auto_increment veld. Wat is PK? | ||||||
KomtTijd... | donderdag 28 november 2013 @ 21:04 | |||||
De primary key is altijd unique. | ||||||
TwenteFC | donderdag 28 november 2013 @ 21:05 | |||||
Primary key, en een auto_increment veld is per definitie uniek en onderdeel v/d PK. edit: Je kan het ook heel makkelijk testen, om eens kijken wat er dan gebeurt; Voeg maar eens een product toe met een ID dat al bestaat. | ||||||
xaban06 | donderdag 28 november 2013 @ 21:25 | |||||
Nog een vraag, ik sla prijzen op als: 199,99 In MySQL doe ik in een SELECT, price+shipmentCost as totalPrice. Dit werkt niet. Het werkt wel wanneer ik de prijzen opsla als: 199.99 Dus een punt in plaats van een komma. Is hier omheen te werken op een nette manier? | ||||||
KomtTijd... | donderdag 28 november 2013 @ 21:50 | |||||
Al zou het kunnen, dat is toch iets wat je absoluut nooit aan wilt beginnen? Sowieso, sla gewoon de prijs in centen op als int. | ||||||
HalveZware | donderdag 28 november 2013 @ 21:50 | |||||
Waarom niet gewoon de Price en shipmentCost ( Let even op met dit soort CamelCasing overigens !! ) uit DB trekken en PHP het op laten tellen? dan kun je er ook nog variabele kortingen en dergelijke in mee rekenen als je dit nodig hebt? Dit inderdaad, dat vind je backend ook stuk toffer! :-) comma getallen ( Floats etc ) gaan gewoon net effe minder lekker door je database heen | ||||||
Crutch | donderdag 28 november 2013 @ 21:51 | |||||
Ja, je waarde altijd opslaan als float of decimal en pas converteren naar #,## wanner je het output naar je template. Of centen inderdaad. | ||||||
slacker_nl | donderdag 28 november 2013 @ 21:56 | |||||
Zo kan je het in je weergave aanpassen, ik zou het gewoon goed als float/double opslaan in je DB. En als centen opslaan in je DB.. mja, ik snap die redenatie niet. Alsof floats/doubles zo moeilijk zijn voor een database... Je kan overigens ook..
proberen te gebruiken. Maar dat kan eventueel misgaan bij de input naar de database. Dan moet je binnen je transactie wellicht even de locale terugzetten naar iets Engelsachtig (LC_MONETARY en/of LC_NUMERIC aanpassen helpt al). [ Bericht 9% gewijzigd door slacker_nl op 28-11-2013 22:11:41 ] | ||||||
TwenteFC | donderdag 28 november 2013 @ 22:19 | |||||
Ik wil de productprijzen op halen van producten die zowel bij shop A als bij shop B zijn, waar ga ik de fout in met deze query? Had het ook al met EXISTS geprobeerd maar ik loop even flink te kutten nu ![]() | ||||||
slacker_nl | donderdag 28 november 2013 @ 22:22 | |||||
where po.sellerid = 1 and po.sellerid =2? | ||||||
TwenteFC | donderdag 28 november 2013 @ 22:24 | |||||
Dan krijg ik alle producten seller 1 en 2, ongeacht of seller 1 en 2 het beide product hebben. | ||||||
TwenteFC | donderdag 28 november 2013 @ 22:25 | |||||
![]() ![]() | ||||||
xaban06 | donderdag 28 november 2013 @ 22:28 | |||||
Thanks, zal daar eens naar kijken. Het is allemaal read, ik doe verder zo goed als geen input/insert ![]() | ||||||
slacker_nl | donderdag 28 november 2013 @ 22:29 | |||||
hoezo, tis geen or toch? where (po.sellerid = 1 and po.sellerid = 2) and .. zou m.i. moeten werken. | ||||||
TwenteFC | donderdag 28 november 2013 @ 22:32 | |||||
![]() ![]() ![]() ![]() | ||||||
slacker_nl | donderdag 28 november 2013 @ 22:37 | |||||
Owja, das waar, maar je kan ook joinen met jezelf volgens mij. dan krijg je iets als
Al kan die AND in de JOIN ook een WHERE zijn, over die syntax twijfel ik even.. | ||||||
TwenteFC | donderdag 28 november 2013 @ 23:07 | |||||
Heb het nu werkend maar je kan inderdaad gewoon een query in de ON gooien. Wel tussen ( ) volgens mij. Toch bedankt voor de hulp ![]() | ||||||
TwenteFC | vrijdag 29 november 2013 @ 01:02 | |||||
Net een verneukte query uitgevoerd, doet hij toch nog aardig ![]() Weergave van records 0 - 29 ( 74,554,590 totaal, query duurde 0.0055 sec) | ||||||
TwenteFC | vrijdag 29 november 2013 @ 21:15 | |||||
Ik wil in SQL met MATCH de overeenkomsten van een zoekopdracht vergelijk met een kolom en daar een percentage uit berekenen, dit werkt nu al goed. Maar hoe kan ik woorden uitsluiten van deze match? | ||||||
xaban06 | vrijdag 29 november 2013 @ 21:48 | |||||
setlocale lijkt geen verandering er in te brengen. | ||||||
bondage | vrijdag 29 november 2013 @ 22:09 | |||||
NOT MATCH(...) | ||||||
Light | vrijdag 29 november 2013 @ 22:33 | |||||
Een database kan prima floats en doubles opslaan, maar de exacte waarde die je opslaat is niet de waarde die je terugkrijgt. Floats en doubles kunnen namelijk niet ieder getal exact weergeven. 1,99 wordt dan misschien 1,9899999999. En dat gaat vroeg of laat afrondingsproblemen geven die ook nog eens best lastig te vinden zijn. Bij financiele informatie is dat niet wenselijk, dus kun je beter met centen rekenen en pas bij weergave afronden. | ||||||
slacker_nl | vrijdag 29 november 2013 @ 22:35 | |||||
Jij wilt zeggen dat een postgres of mysql or oracle 1,99 als 1,98999 of als 1,97 teruggeeft? Ik geloof daar geen drol van. | ||||||
rekenwonder | vrijdag 29 november 2013 @ 22:41 | |||||
Light overdrijft een beetje, maar heeft wel een puntje. What Every Computer Scientist Should Know About Floating-Point Arithmetic | ||||||
Light | vrijdag 29 november 2013 @ 22:43 | |||||
Zie bijvoorbeeld ook hier: http://stackoverflow.com/(...)ion-problem-in-mysql | ||||||
TwenteFC | vrijdag 29 november 2013 @ 22:43 | |||||
Het is gewoon opletten met wat je doet, bijv round(1.4545,2) geeft 1.45 terug. | ||||||
Light | vrijdag 29 november 2013 @ 22:48 | |||||
Het probleem is niet round(), het probleem is die 1.4545 en de nauwkeurigheid daarvan. Als je alleen dat getal hebt, zal het wel goed gaan. Als je spannende berekeningen doet en verschillende getallen gebruikt, kun je een afwijking krijgen. | ||||||
xaban06 | vrijdag 29 november 2013 @ 23:02 | |||||
Ik maak in ieder geval geen berekeningen, ik krijg een lijst aangeleverd met producten + prijzen, deze insert ik gewoon in een database, maar moet tijdens het showen de prijs + verzendkosten bij elkaar optellen. Maar laat ook maar, ik zie net dat de prijzen worden aangeleverd in #.##, met punt dus en niet met komma, stom stom stom ![]() | ||||||
slacker_nl | zaterdag 30 november 2013 @ 00:11 | |||||
Vreemd, hier wel. Wat is de return value van setlocale? Zie de docs even, daar staan wat nuttige dingen in.. | ||||||
Alfje | zondag 1 december 2013 @ 12:29 | |||||
Vraagje over mijn database design: Ik heb een locatie die onderdeel is van een groep en de locatie bevat meerdere ruimtes. Nu wil ik openingstijden toevoegen en wel op een manier dat de groep de standaard openingstijden bevat voor elke locatie binnen de groep. Een locatie kan afwijkende openingstijden hebben die specifiek aan de locatie gekoppeld moeten worden. En tot slot kan het zijn dat een ruimte nog eigen openingstijden heeft die dan voorgaan. Ik heb dus de tabellen:
Wat is nu de beste manier om de opening_hours aan de betreffende tabellen te koppelen. Ik zie zelf twee opties: - twee velden toevoegen aan de opening hours, één voor het type tabel waar hij naar linkt (related_type) en één voor het bijbehorende id (related_id). Nadeel hiervan is dat je geen foreign keys kunt gebruiken omdat je niet weet naar welke tabel het related_id veld verwijst. - Voor elk type een koppelingstabel maken. Dan kan je wel met foreign keys werken, maar krijg je misschien een wildgroei aan tabellen. Welke van de twee opties is "beter" en waarom? En zijn er nog andere opties? | ||||||
papernote | zondag 1 december 2013 @ 13:41 | |||||
Derde optie: een opening_hours_id toevoegen aan group, location en room welke ook NULL kan zijn. | ||||||
Alfje | zondag 1 december 2013 @ 13:53 | |||||
Opzich ook een mooie oplossing inderdaad, alleen heb ik hier een ander probleem, namelijk dat de openingstijden per dag verschillend kunnen zijn (het weekday veld in opening_hours) Dat betekent dat ieder eigenlijk 7 "openingstijden" heeft. Om nou aan elke tabel zeven velden toe te voegen lijkt me ook niet erg mooi. | ||||||
Light | zondag 1 december 2013 @ 14:01 | |||||
Dan kun je beter aan de tabel opening_hours een kolom location_id (of room_id) toevoegen, om aan te geven voor welke locatie die openingstijden gelden. Dan weet je ook zeker dat je voor iedere lokatie de tijden apart kunt aanpassen zonder dat je tijden van andere lokaties verandert. | ||||||
raptorix | dinsdag 3 december 2013 @ 18:20 | |||||
Als je het echt wilt normaliseren ontkomt je daar niet aan, anders gaat het botsen met je business rules. Wat je nog wel zou kunnen doen is een table "opening schema's" maken waarin je dus verschillende sets van openingstijden kunt definieren, eventueel zou je dat ook weer naar 2 tables kunnen normaliseren met weer een opsplitsing per dag. Overigens zou ik in dit geval helemaal niet zo ver gaan met normaliseren, wanneer performance niet een groot probleem is, en er bijvoorbeeld geen belangrijke transacties plaatsvinden zou ik de openingstijden gewoon op extra columns zetten zoals dat met NoSQL databases ook gangbaar is. | ||||||
xaban06 | donderdag 5 december 2013 @ 15:55 | |||||
Ik loop alweer tegen een probleem op.
Ik krijg de melding op regel 11. | ||||||
zoem | donderdag 5 december 2013 @ 16:00 | |||||
Beste oplossing (vziw ik uit de context kan halen): gebruik een (LEFT) JOIN. Oplossing voor jouw snippet: sla de documentatie erop na ![]()
[ Bericht 3% gewijzigd door zoem op 05-12-2013 16:14:03 ] | ||||||
xaban06 | donderdag 5 december 2013 @ 16:05 | |||||
Ik weet dat het efficienter kan dmv een 1 langere query, maar voor nu wil ik het doen zoals ik het heb, moet ook gewoon kunnen toch? | ||||||
zoem | donderdag 5 december 2013 @ 16:08 | |||||
Natuurlijk, dat gaat ook werken. Alleen kan het aantal queries dan gigantisch oplopen als je een hele reeks aan producten hebt, waardoor de pagina traag wordt en/of de server het (onnodig) druk kan krijgen bij veel bezoekers. | ||||||
xaban06 | donderdag 5 december 2013 @ 16:09 | |||||
Klopt, maar dat is het geval niet ![]() ![]() Wat is er precies fout in mijn script? | ||||||
bondage | donderdag 5 december 2013 @ 16:10 | |||||
En daarbij nog de overhead welke wordt veroorzaakt door het verkeer tussen het script en de MySQL server... Ik zou zelf niet zo snel query's in een loop gaan zetten als dat niet nodig is. | ||||||
zoem | donderdag 5 december 2013 @ 16:11 | |||||
| ||||||
xaban06 | donderdag 5 december 2013 @ 16:15 | |||||
Ik zie geen verschil tussen jouw en mijn code, of wel? ![]() | ||||||
bondage | donderdag 5 december 2013 @ 16:15 | |||||
Je kunt je query simpelweg aanpassen naar:
| ||||||
xaban06 | donderdag 5 december 2013 @ 16:17 | |||||
Hartstikke bedankt voor de query, wordt gewaardeerd, maar mijn query wordt straks nog langer en dan weet ik dat ik er niet meer uit zal komen, vandaar hield ik het simpel ![]() Zal het straks eens uitproberen. | ||||||
zoem | donderdag 5 december 2013 @ 16:17 | |||||
De laatste regel in de loop is de verbetering, de voorlaatste regel is foutief. De vraag is of er meerdere prijzen zijn per artikel, want dan moet de code iets aangepast worden. Anders was dit een prima drop-in replacement geweest ![]() | ||||||
xaban06 | donderdag 5 december 2013 @ 16:18 | |||||
Per product zijn er meerdere prijzen, ik haal de goedkoopste eruit per product. | ||||||
bondage | donderdag 5 december 2013 @ 16:30 | |||||
Deze query zou die data moeten teruggeven. Kan echter niet testen en weet niet zeker of het zo klopt... Misschien dat zoem hier eventueel een aanvulling op kan geven.
[ Bericht 0% gewijzigd door bondage op 05-12-2013 17:48:45 ("; weggehaald na de variable) ] | ||||||
zoem | donderdag 5 december 2013 @ 16:32 | |||||
Dat is het bekende groupwise maximum (of minimum) probleem. Via de bekende zoekmachine zijn daar tal voorbeelden en oplossingen over te vinden. | ||||||
raptorix | donderdag 5 december 2013 @ 17:42 | |||||
Dit is inderdaad de juiste manier, en juist op deze manier hou je je queries ook redelijk leesbaar vind ik. | ||||||
xaban06 | donderdag 5 december 2013 @ 23:51 | |||||
Thanks voor deze reactie. Volgens mij moet dit werken:
/edit het lijkt te werken, echter wil ik price+shipmentCost bijelkaar optellen, dan veranderd de WHERE, maar snap m niet helemaal ![]() | ||||||
bondage | vrijdag 6 december 2013 @ 00:04 | |||||
prices.price+prices.shipmentCost AS totalPrice in de select werkt niet? Als het niet werkt zou je je query in een andere query kunnen zetten en dan in de buitenste query de waarden optellen. | ||||||
slacker_nl | vrijdag 6 december 2013 @ 10:06 | |||||
Kennen jullie PDO? Ga het gebruiken!! Die sql die "SELECT * FROM meuk where iets = $bla"; is jakkes. Maak een prepared statement en execute die:
| ||||||
Boze_Appel | vrijdag 6 december 2013 @ 11:00 | |||||
Als je toch PDO gaat gebruiken, gebruikt dan BindParams. Dan je meteen typecasten en andere restricties op je input zetten. | ||||||
Onnoman | zondag 8 december 2013 @ 18:28 | |||||
Rij1: |1| |2| |3| Rij2: |1| |2| |3| Rij3: |1| |3| |4| Rij4: |1| |5| |6| Met bovenstaande tabel wil ik graag het resultaat van de bovenste 2 rijen terug krijgen omdat rij 2 de waarde 2 heeft en rij 3 de waarde 3. welke query moet ik hiervoor uitvoeren? alvast bedankt | ||||||
#ANONIEM | zondag 8 december 2013 @ 18:40 | |||||
Hoe heet je tabel en kolomnamen? Is namelijk iets van Select * from tabel where kolom2 = 2 | ||||||
Maringo | zondag 8 december 2013 @ 18:43 | |||||
Wat heb je al geprobeerd? | ||||||
Onnoman | zondag 8 december 2013 @ 18:56 | |||||
ik wil eigenlijk een count doen op het aantal rijen met de zelfde kolom waardes dus hoeveel rijen uit mijn tabel heeft een overeenkomstige waarde in kolom 2 en 3 ik dacht iets van Select kolom2, kolom3, count(*) from table group by kolom2, kolom3 having count(*) > 3; maar dit gaat niet helemaal goed | ||||||
#ANONIEM | zondag 8 december 2013 @ 18:59 | |||||
Leg eens uit waarom je dit doet. Wat is het echt probleem. Je echte kolomnamen. Dit is namelijk niet erg duidelijk. | ||||||
Robuustheid | zondag 8 december 2013 @ 19:00 | |||||
Waarom toont de exit-functie de parameter? ![]() | ||||||
Onnoman | zondag 8 december 2013 @ 19:00 | |||||
is ook niet relevant.. het gaat mij puur om een voorbeeld query volgens mijn omschrijving ik wil namelijk de relatie met andere tabellen achterhalen | ||||||
#ANONIEM | zondag 8 december 2013 @ 19:02 | |||||
Misschien is je tabel opzet wel verkeerd en ben je op de verkeerde wijze bezig. Daarom is het relevant zodat ik een algemeen idee kan krijgen wat je wilt met je query | ||||||
Onnoman | zondag 8 december 2013 @ 19:10 | |||||
nou ik heb een kolom met de naam: straatnaam, huisnummer, en kamernummer ik wil een count doen op alle rijen die dezelfde straatnaam en huisnummer hebben | ||||||
#ANONIEM | zondag 8 december 2013 @ 19:17 | |||||
Geen manier om het te testen maar zoiets zou kunnen werken. Select count(t1.*) from tabel as t1, Tabel as t2 Where t1.straatnaam = t2.straatnaam AND t1.num = t2.num Group by t1.num | ||||||
#ANONIEM | zondag 8 december 2013 @ 19:18 | |||||
... Foutje [ Bericht 98% gewijzigd door #ANONIEM op 08-12-2013 19:18:30 ] | ||||||
Onnoman | zondag 8 december 2013 @ 19:20 | |||||
heb het trouwens al gevonden mijn eerste query was toch goed | ||||||
#ANONIEM | zondag 8 december 2013 @ 19:26 | |||||
Dat is mooi! | ||||||
slacker_nl | zondag 8 december 2013 @ 20:30 | |||||
Ook goed! ![]() | ||||||
Light | zondag 8 december 2013 @ 22:13 | |||||
Standaardgedrag van exit() en (die(), want dat is een alias voor exit() ) als de parameter een string is. Als je een integer als parameter geeft, wordt dat de exit code. Maar daar heb je niets aan bij webpagina's. | ||||||
raptorix | maandag 9 december 2013 @ 14:54 | |||||
Edit, laat maar. | ||||||
raptorix | maandag 9 december 2013 @ 14:54 | |||||
Of stored procedures, zijn ook nog eens makkelijker te testen. | ||||||
Onnoman | donderdag 12 december 2013 @ 14:35 | |||||
Kent iemand een tooltje waarmee je van een sql of xml bestand een database diagram kan genereren? Dus met relatie lijntjes enzo? alvast bedankt! | ||||||
Aether | donderdag 12 december 2013 @ 15:31 | |||||
http://www.mysql.com/products/workbench/ http://www.fabforce.net/dbdesigner4/ | ||||||
#ANONIEM | maandag 16 december 2013 @ 15:13 | |||||
|