abonnementen ibood.com bol.com Gearbest
pi_173411838
registreer om deze reclame te verbergen
quote:
1s.gif 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.
Joh. Zou je denken?
pi_173411901
quote:
1s.gif 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 ]

https://stackoverflow.com(...)urn-in-plain-english
pi_173412248
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?
  zondag 27 augustus 2017 @ 09:54:52 #29
220052 Blue_note
The world's greatest!
pi_173416842
registreer om deze reclame te verbergen
quote:
0s.gif 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?
Thanks voor je antwoord. Ik ben me inderdaad van de slordigheden bewust ja...

Er zijn classes user, item etc.

Alle items hebben in de database een uniek ID.
Dan is er een database auto’s die meerdere item ID kunnen bevatten.

Met een foreach kun je toch blijven loopen met meerdere items/id’s?!

Ik was al blij dat ik dit na 3 weken wist te fabriceren. Die blijdschap laat ik varen nu _O-
A dirty mind is a joy forever
  zondag 27 augustus 2017 @ 10:37:53 #30
220052 Blue_note
The world's greatest!
pi_173417485
quote:
Maar een functie met een return kun je toch echo’en of?

Als ik dit doe:
1
2
3
4
5
6
7
Function bereken(){
$result = 1*2;

Return $result
}

Echo bereken()

Krijg ik toch een echo op mn scherm?
A dirty mind is a joy forever
pi_173417514
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.
  zondag 27 augustus 2017 @ 10:43:49 #32
220052 Blue_note
The world's greatest!
pi_173417575
registreer om deze reclame te verbergen
quote:
0s.gif 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.
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?
A dirty mind is a joy forever
pi_173417581
quote:
1s.gif 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?
Klopt helemaal, maar je echoot niet de functie zelf, maar het resultaat. Wat er intern eigenlijk gebeurd is meer:
1
2
$tmp = bereken();
echo $tmp;
  zondag 27 augustus 2017 @ 10:48:55 #34
220052 Blue_note
The world's greatest!
pi_173417629
quote:
0s.gif 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 ]

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?
A dirty mind is a joy forever
pi_173417643
quote:
1s.gif 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?
Je zegt dat je een user class hebt, hoe ziet die eruit? Zoiets:

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;
    }
}
?>

Dan kan je een User object maken door $user = new User(); aan te roepen en deze een id geven door $user->setId(4); te doen.

Dat doe je niet in je getUser functie, die haalt enkel een array op in de vorm
[ 'id' => 4, 'name' => 'jaap' ]
pi_173417702
quote:
1s.gif 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?
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.
  zondag 27 augustus 2017 @ 10:59:04 #37
220052 Blue_note
The world's greatest!
pi_173417781
quote:
0s.gif 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.
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? :@
A dirty mind is a joy forever
  dinsdag 29 augustus 2017 @ 18:19:28 #38
220052 Blue_note
The world's greatest!
pi_173466236
quote:
1s.gif 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? :@
Inmiddels opgelost.
De functie die de lijst maakte had geen return, die bleef dus doorgaan.
Return ingevoegd, UPDATE en INSERT INTO toegevoegd/aangepast, en de get functie laten uitvoeren. Nu werkt het zoals het hoort!

Nieuw probleem, waarvan al tig tutorials bestaan, maar toch klopt er bij mij iets niet helemaal.

Wil een waardering/rating systeem toevoegen. Nu begreep ik dat een AJAX call hiervoor het meest geschikt is. Maar heb al vanalles geprobeerd, het lukt niet wat ik wil.

Iemand beter suggestie?
A dirty mind is a joy forever
pi_173468193
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.
  dinsdag 29 augustus 2017 @ 20:23:51 #40
220052 Blue_note
The world's greatest!
pi_173468240
quote:
0s.gif 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.
Ik ga morgen maar eens wat tutorials lezen/volgen.

Frustratie als zoiets niet lukt :(
Mja zonder uitdaging kom je ook niet verder.
A dirty mind is a joy forever
  donderdag 7 september 2017 @ 16:04:17 #41
459997 DevFreak
Still got the blues.
pi_173640518
quote:
1s.gif 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.

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. *)
Appels niet met peren vergelijken.
  donderdag 7 september 2017 @ 18:05:14 #42
220052 Blue_note
The world's greatest!
pi_173642757
quote:
7s.gif 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. *)
Ik was al begonnen ;)!

Ik vind het wel prettig werken eigenlijk!
A dirty mind is a joy forever
pi_173684043
i.p.v. echo print_r gebruiken
Fylax is op televisie geweest
  zondag 10 september 2017 @ 08:25:00 #44
220052 Blue_note
The world's greatest!
pi_173688441
quote:
0s.gif Op zaterdag 9 september 2017 21:48 schreef jodelahity het volgende:
i.p.v. echo print_r gebruiken
Print_r toch zeker niet in uiteindelijke code?!
Is meer om te debuggen.
A dirty mind is a joy forever
pi_173689552
quote:
1s.gif 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.
Ja klopt.
Fylax is op televisie geweest
abonnementen ibood.com bol.com Gearbest
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')