Ja dat doe ik ook, maar dan blijf ik toch een beetje hangen in de ‘vertrouwde’ dingen. Dingen die je nog niet kent zijn lastig te oefenen vind ik.quote:Op donderdag 24 augustus 2017 19:18 schreef totalvamp het volgende:
ik leerde door veel kopieren en testen. Lees dingen over Classes enzo.
Ben ik mee bezig inderdaad. Maar dan wordt het weer net iets te ingewikkeld.quote:Op donderdag 24 augustus 2017 21:14 schreef totalvamp het volgende:
beste is een project beginnen dan kom je dat soort dingen vanzelf tegen
Thanks, ga hem eens bekijken.quote:Op vrijdag 25 augustus 2017 14:28 schreef Alfje het volgende:
https://www.youtube.com/watch?v=wdAfILoJWcI&list=PLTney8JqQkkk2oGFQONHHKDzvsChJMKEY
Dit is wel een goede serie om een dynamische website te bouwen. Veel nuttige achtergrond informatie ook.
Wat voor project ben je mee bezig en wat is daar te ingewikkeld aan? Weet je niet waar je moet beginnen of zit je vast bij een specifiek stukje?
Zo pak ik het inderdaad ook aan. Tonen, en CSS/HTML opmaak lukt, evenals het ophalen van MySQL. Al zou ik het niet zo uit m'n hoofd kunnen en moet ik telkens wat opzoeken hoe het precies werkt.quote:Op vrijdag 25 augustus 2017 14:37 schreef Alfje het volgende:
Probeer vooral niet om in een keer je hele project vooruit te denken, maar maak kleine stapjes. Begin eens met het simpelweg tonen van een pagina, daarna met iets dat je bijvoorbeeld uit de database haalt. Als dat werkt ga je eens kijken of je een inlog functie kan maken enzovoorts.
Errors leren lezen, begrijpen en opzoeken is wel een essentiele vaardigheid als je verder wilt komen. De meeste foutmeldingen zijn ook wel redelijk duidelijk.
Ik hoop dat je niet meteen afgeknapt raakt op programmeren, PHP is nu eenmaal niet echt een goede taal om wat dan ook mee te doen. Zie dit artikel. Ik zou er ver uit de buurt blijven.quote:Op donderdag 24 augustus 2017 22:01 schreef Blue_note het volgende:
[..]
Ben ik mee bezig inderdaad. Maar dan wordt het weer net iets te ingewikkeld.
5 jaar oud artikel, inmiddels is PHP ook weer verder gegroeid.quote:Op vrijdag 25 augustus 2017 15:20 schreef Aaargh! het volgende:
[..]
Ik hoop dat je niet meteen afgeknapt raakt op programmeren, PHP is nu eenmaal niet echt een goede taal om wat dan ook mee te doen. Zie dit artikel. Ik zou er ver uit de buurt blijven.
Als je nu wilt beginnen met leren programmeren kan je beter kijken naar iets als Kotlin of Swift.
Tenzij ze helemaal opnieuw begonnen zijn met een compleet nieuw development team zie ik niet hoe dat relevant is. Alles wat in dat artikel staat is nog steeds 100% relevant. PHP wordt ontwikkeld door amateurs, mensen die niets weten van het ontwikkelen van programmeertalen en ze zijn op geen enkele manier bereid om ook maar iets aan de taal te verbeteren.quote:Op vrijdag 25 augustus 2017 16:55 schreef Adames het volgende:
[..]
5 jaar oud artikel, inmiddels is PHP ook weer verder gegroeid.
Wat Waar lees je dat soort onzin ?quote:Op vrijdag 25 augustus 2017 16:57 schreef Adames het volgende:
Verder is het ook maar deels modegrill. Javascript werd enkele jaren geleden gezien als de meest lelijke, onverzichtelijke kiddytaal die je maar kon verzinnen. Nu is het de heilige graal onder de programmeertalen vanwege zijn vele mogelijkheden.
Ik probeer alleen te voorkomen dat ie gelijk afknapt op programmeren omdat z'n eerste ervaring opgedaan is met de puinhoop die PHP is.quote:Op zaterdag 26 augustus 2017 11:13 schreef KomtTijd... het volgende:
Niet op aaargh reageren joh, don't feed the trolls.
Joh, jij komt op alle topics met "PHP" of "android" in de titel af als een vlieg op een drol. Om alleen maar te lopen zeiken hoe kut en klote het is omdat het niet binnen jouw tunnelvisie van de perfecte wereld past.quote:Op zaterdag 26 augustus 2017 12:22 schreef Aaargh! het volgende:
[..]
Ik probeer alleen te voorkomen dat ie gelijk afknapt op programmeren omdat z'n eerste ervaring opgedaan is met de puinhoop die PHP is.
Laat me raden, je bent zelf PHP prutser en voelt je op je pik getrapt ?quote:Op zaterdag 26 augustus 2017 15:03 schreef KomtTijd... het volgende:
[..]
Joh, jij komt op alle topics met "PHP" of "android" in de titel af als een vlieg op een drol. Om alleen maar te lopen zeiken hoe kut en klote het is omdat het niet binnen jouw tunnelvisie van de perfecte wereld past.
Codecademy heb ik doorlopen. Maar cc stopt wanneer het spannend wordt.quote:Op zaterdag 26 augustus 2017 20:23 schreef Sulka het volgende:
PHP is de perfecte basis om te leren programmeren voor web. Voor je switcht naar een PHP framework zoals bijvoorbeeld Laravel of Symfony raad ik je aan om eerst PHP te leren. Als je dit voldoende beheerst kan je overstappen naar iets meer geavanceerd.
Voor oefeningen raad ik je https://www.codecademy.com/ aan. Hier vind je zowel oefeningen over OOP als theorie.
Als je de principes achter OOP begrijpt ben je al een heel eind.
Happy coding!
Laat me raden, C fan?quote:Op vrijdag 25 augustus 2017 17:03 schreef Aaargh! het volgende:
[..]
Tenzij ze helemaal opnieuw begonnen zijn met een compleet nieuw development team zie ik niet hoe dat relevant is. Alles wat in dat artikel staat is nog steeds 100% relevant. PHP wordt ontwikkeld door amateurs, mensen die niets weten van het ontwikkelen van programmeertalen en ze zijn op geen enkele manier bereid om ook maar iets aan de taal te verbeteren.
PHP is gewoon niet geschikt voor een beginnen want het is een inconsistente teringbende, het zit vol met hele rare valkuilen. Er is echt niets goeds te zeggen over PHP.
Wat ik voor elkaar wil krijgen is dat wanneer iemand iets op een ‘itemlist’ zet, de code checkt of het item er al opstaat (items staan in MySQL database met een uniek ID), en eventueel optelt, zo niet toevoegt.quote:Op zaterdag 26 augustus 2017 22:13 schreef Alfje het volgende:
stackoverflow is soms geweldig, maar soms ook een poel van slecht advies. Kan je de relevante code posten? Fok heeft er speciale highlightinfg voor.
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | private function getUser($id) { $return = array(); $sql = "select * from user where id = $id"; $result = mysqli_query($this->link, $sql); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $return [] = $row; } return($return); } public function getItems($items_id) { $data = $this->item_object->getItem($item_id); echo "<pre><h1>ADD</h1>"; var_dump($data); return($data); } private function checkItems($item, $exist) { foreach($exist as $ex) { if($item["id"] == $ex["id"]) { return(true); } } return(false); } public function makeList($user_id, $item_id) { $item_new = $this->getItems($item_id); $item_old = $this->getList($user_id); foreach($item_new as $item ) { $exist = $this->checkItem($item, $item_old); if($exist) { // UPDATE LIST } else { /// INSERT INTO LIST } } } public function getList($user_id) { $return = array(); $sql = "select * from item list where user_id = $user_id"; $result = mysqli_query($this->link, $sql); while ($row = mysqli_fetch_assoc($result)) { $return[] = $row; } echo "<pre><h1>EXIST</h1>"; var_dump($return); return($return); |
Joh. Zou je denken?quote:Op zaterdag 26 augustus 2017 22:57 schreef Blue_note het volgende:
[..]
Wat ik voor elkaar wil krijgen is dat wanneer iemand iets op een ‘itemlist’ zet, de code checkt of het item er al opstaat (items staan in MySQL database met een uniek ID), en eventueel optelt, zo niet toevoegt.
Ik denk dat ik iets moet toevoegen waar ik de comment tags heb staan.
https://stackoverflow.com(...)urn-in-plain-englishquote:Op zaterdag 26 augustus 2017 22:57 schreef Blue_note het volgende:
[..]
Wat ik voor elkaar wil krijgen is dat wanneer iemand iets op een ‘itemlist’ zet, de code checkt of het item er al opstaat (items staan in MySQL database met een uniek ID), en eventueel optelt, zo niet toevoegt.
Ik denk dat ik iets moet toevoegen waar ik de comment tags heb staan.
De return werkt niet als ik de functie echo.
[ code verwijderd ]
Thanks voor je antwoord. Ik ben me inderdaad van de slordigheden bewust ja...quote:Op zaterdag 26 augustus 2017 23:37 schreef Alfje het volgende:
Laat je vooral niet ontmoedigen door de shitload aan commentaar die ik hier ga geven. De fouten die je maakt maakt elke beginner en je moet je vooral niet schamen. Verder lijkt het soms een beetje mierenneuken, maar geloof me dat je er heel erg veel gelukkiger van wordt als je er iets mee doet.
Gebruik geen keywords als variabele namen, dat werkt verwarrend. Geen $return, maar bijvoorbeeld $result.
Je query's zijn erg gevaarlijk op deze manier. Google eens op SQL injection.
return is geen functie maar een language construct je moet geen haakjes gebruiken. Ik denk dat het voor het resultaat niet uitmaakt, maar als het niet nodig is gebruik je geen haakjes.
Denk iets meer na over hoe je je variabelen en functies noemt, je gebruikt gelukkig al beschrijvende namen, maar train jezelf erop dat je daar niet lui in wordt. Noem bijvoorbeeld $exists en $ex in je tweede functie $existingItems en $existingItem. Noem je functie ook geen checkItems, als ik alleen de naam zie heb ik geen idee wat die dan zou moeten checken. Wat hij doet is checken of een item in een lijst met items voorkomt. listContainsItem zou een goede naam kunnen zijn. Dit is geen exacte wetenschap en je moet er een beetje gevoel voor ontwikkelen, maar probeer er aandacht aan te geven.
Php heeft een behoorlijk aantal coding standards, Gebruik ze en gebruik ze consistent.
http://www.php-fig.org/psr/psr-1/
Verder heeft wat je doet vrij weinig met OOP te maken. Dit is een valkuil waar je vooral met php snel intrapt omdat je zoveel met een array kan doen. Maar een item zou bijvoorbeeld een eigen class moeten zijn, niet een array dat je rondstuurt. Datzelfde geldt voor user.
Ik zie ook nog neit wat je nou precies probeert te doen. In je makelist functie roep je getitems aan met een item_id, hoe kun je meerdere items terugkrijgen als je hem met een id aanroept? Als ik het goed begrijp heb je al items in je database staan en heb je per user een lijst met items die aan die user gekoppeld is. Er kan een item aan een gebruiker worden toegevoegd, eventueel zelfs meerdere keren. Hoe heb je dat in je database opgelost?
Maar een functie met een return kun je toch echo’en of?quote:Op zaterdag 26 augustus 2017 23:16 schreef Sulka het volgende:
[..]
https://stackoverflow.com(...)urn-in-plain-english
1 2 3 4 5 6 7 | Function bereken(){ $result = 1*2; Return $result } Echo bereken() |
Mijn database ziet er inderdaad zo uit als je beschrijft.quote:Op zondag 27 augustus 2017 10:40 schreef Alfje het volgende:
Veel mensen krijgen het niet eens voor elkaar om iets werkends te produceren, dus je bent goed op weg. Maarja programmeren is een vak. Je kunt het een gorot deel jezelf aanleren, maar hoe verder je komt hoe meer je ook weer ontdekt wat je nog niet weet.
Als je een item en user class hebt waarom gebruik je ze dan niet? je getUser functie returned nu een array en geen User. Hetzelfde geldt voor getItem.
foreach is inderdaad een loop, je stopt er een array in en voor elk element in het array wordt de code tussen de accolades uitevoerd. Pas wel een beetje op met een foreach in een andere foreach, dat kan redelijk snel traag worden. Maar ik geloof niet dat we hier met hele grote lijsten van items werken dus dat zal wel meevallen.
Ik ga er even vanuit dat je een tabel Items hebt in je database met een id en bijvoorbeeld een naam en mischien nog andere kolommen. Je hebt dan vast een table auto met ook een id, een kolom met item_id en een kolom met aantal ofzo?
In dat geval kan je de check ook door je database uit laten voeren. Voer een update uit waarbij je het aantal van een specifiek item verhoogd, vraag het aantal rijen dat veranderd is. Als dat 1 is is het gelukt en bestond hij al als het 0 is bestond hij nog niet en moet je hem inserten.
Klopt helemaal, maar je echoot niet de functie zelf, maar het resultaat. Wat er intern eigenlijk gebeurd is meer:quote:Op zondag 27 augustus 2017 10:37 schreef Blue_note het volgende:
[..]
Maar een functie met een return kun je toch echo’en of?
Als ik dit doe:
[ code verwijderd ]
Krijg ik toch een echo op mn scherm?
1 2 | $tmp = bereken(); echo $tmp; |
Duidelijk...ja zo ging het in mijn gedachte ook, maar beschreef het niet goed.quote:Op zondag 27 augustus 2017 10:44 schreef Alfje het volgende:
[..]
Klopt helemaal, maar je echoot niet de functie zelf, maar het resultaat. Wat er intern eigenlijk gebeurd is meer:
[ code verwijderd ]
Je zegt dat je een user class hebt, hoe ziet die eruit? Zoiets:quote:Op zondag 27 augustus 2017 10:43 schreef Blue_note het volgende:
[..]
Mijn database ziet er inderdaad zo uit als je beschrijft.
Precies dat laatste zou ik willen doen.
Maar hoe en waar in mn code zou ik dat kunnen implementeren? Ik heb de INSERT INTO al geprobeerd maar zonder resultaat.
Ik snap volgens mij niet helemaal wat je bedoelt met het gebruiken van de user en item class?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php class User { private $id; private $name; public setId($id) { $this->id = $id; } public function getId() { return $this->id; } } ?> |
var_dump is echt voor debuggen, en nog mooier is het om een echt debugger te gebruiken, maar dat is voor nu niet van belang, var_dump geeft ook wat meer technische informatie in een niet erg mooie opmaak.quote:Op zondag 27 augustus 2017 10:48 schreef Blue_note het volgende:
[..]
Duidelijk...ja zo ging het in mijn gedachte ook, maar beschreef het niet goed.
Maar als je return in een functie een array is, kun je die dan eigenlijk ook echo’en (de hele array, zoals een var_dump doet)? Nee toch? Hoe los je dat op als je toch een output wilt van de volledige return?
Deels bekeken, vanwege tijdgebrek.quote:Op zondag 27 augustus 2017 10:53 schreef Alfje het volgende:
[..]
var_dump is echt voor debuggen, en nog mooier is het om een echt debugger te gebruiken, maar dat is voor nu niet van belang, var_dump geeft ook wat meer technische informatie in een niet erg mooie opmaak.
echo is voor het afdrukken van informatie (meestal op het scherm) Als je een array van iets wilt afdrukken dan kan je er met foreach overheen loopen en elke entry van je array afdrukken.
Hev je de youtube serie die ik had aangeraden al bekeken, daar geven ze volgens mij wel een fraaie manier om je code en de weergave gescheiden te houden.
Inmiddels opgelost.quote:Op zondag 27 augustus 2017 10:59 schreef Blue_note het volgende:
[..]
Deels bekeken, vanwege tijdgebrek.
De classes zien er inderdaad ongeveer zo uit.
Maar een concrete vraag:
Hoe zou het stukje code eruit moeten zien om de waardes op de lijst te zetten? En deze vervolgens zichtbaar te krijgen?
Ik ga morgen maar eens wat tutorials lezen/volgen.quote:Op dinsdag 29 augustus 2017 20:21 schreef Alfje het volgende:
Aan de php kant is een ajax call niet anders dan een gewone call dus dit is meer een javascript dingetje. Jquery is een makkelijke javascript library om mee te starten.
Doe maar niet. Ik heb mezelf een paar weken verdiept in Laravel: ga voor dat framework! Is tevens gebaseerd op Symfony.quote:Op zaterdag 26 augustus 2017 21:53 schreef Blue_note het volgende:
[..]
Codecademy heb ik doorlopen. Maar cc stopt wanneer het spannend wordt.
De principes achter OOP zijn duidelijk.
Hoe je ze toe moet passen dmv code nog niet. Maar dat is een kwestie van doen denk ik?
Ik loop nu vast op een stuk code waar ik een functie met een return heb geschreven. Var_dump geeft de juiste output geeft, maar wanneer ik de functie aanroep en wil echo’en komt er niks. Zeer frustrerend. Stackoverflow heb ik opgegeven. Daar heb ik nog nooit een fatsoenlijk antwoord gekregen.
Symfony wil ik hierna oppakken inderdaad.
Ik was al begonnen !quote:Op donderdag 7 september 2017 16:04 schreef DevFreak het volgende:
[..]
Doe maar niet. Ik heb mezelf een paar weken verdiept in Laravel: ga voor dat framework! Is tevens gebaseerd op Symfony.
Mijn advies: probeer zelf een framework te schrijven, dit heb ik ook gedaan. Stap vervolgens over op Laravel.
Ja klopt.quote:Op zondag 10 september 2017 08:25 schreef Blue_note het volgende:
[..]
Print_r toch zeker niet in uiteindelijke code?!
Is meer om te debuggen.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |