[Opgelost] Veld uit database halen met function?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jasper Vriends

Jasper Vriends

12/08/2012 13:54:40
Quote Anchor link
Hallo,
Ik zit met een probleem...
Ik probeer met function een status uit de database te krijgen (Het is 0 of 1), maar hij laat niks zien...
Ik heb het al meerdere malen geprobeerd... Maar het werkt steeds niet...
Dit is het scriptje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function KrijgInstelling($InstellingNaam){
    $KrijgSetting = mysql_query("SELECT status FROM Site_cron WHERE naam = '". $InstellingNaam ."'");
}

?>


Iemand een oplossing?

Mvg,
Jasper
Gewijzigd op 13/08/2012 11:57:26 door Jasper Vriends
 
PHP hulp

PHP hulp

28/11/2024 00:55:38
 
Eddy E

Eddy E

12/08/2012 14:01:35
Quote Anchor link
Dit maakt inderdaad een $KrijgSetting aan.... waar je niets mee doet.

Kijk eens wat een functie in php allemaal moet doen: http://www.php.net/manual/en/functions.user-defined.php


Daarnaast krijg je geen waarde in je $KrijgSetting, maar een resource. Als gevolg van je mysql_query().
Tenzij je query mislukt, dan krijg een FALSE.... waar je dan niets mee doet.
Gewijzigd op 12/08/2012 14:02:42 door Eddy E
 
Jasper Vriends

Jasper Vriends

12/08/2012 14:05:00
Quote Anchor link
Maar hoe krijg ik hem dan zo ver dat hij het automatisch laat zien?

Ik gebruik het hiervoor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(KrijgInstelling("onderhoud") == "1"){}
?>


Jasper


Ik zie dat je veranderd hebt, ff kijken...

jasper

Toevoeging op 12/08/2012 14:14:33:

Hij werkt nu, ik heb er deze code van gemaakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function KrijgInstelling($InstellingNaam){
        $KrijgSetting = mysql_query("SELECT status FROM Site_cron WHERE naam = '". $InstellingNaam ."'");
        $SettingZeggen = mysql_fetch_array($KrijgSetting);
        $Status = $SettingZeggen['status'];
        
        return $Status;
    }

?>


Bedankt van het zeggen van de waarde, anders had ik er niet aan gedacht XD.

Jasper

P.S. Misschien dat hij makkelijker kan, maar ik hou hem hier op :)
Gewijzigd op 12/08/2012 14:05:50 door Jasper Vriends
 
Eddy E

Eddy E

12/08/2012 15:12:29
Quote Anchor link
Bijna perfect.

Je hebt nu nog wat onnodig gekopieer:
En het kan korter (zonder moeilijk te doen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function krijginstelling($naam){
    $res = mysql_query("SELECT status FROM Site_cron WHERE naam = '".$naam."'");
    $res = mysql_fetch_array($res);
    return $res['status'];
    }

?>


Daarnaast... waarom gebruik jij $VariabeleMetHoofdletter? Zonder hoofdletters is minder foutgevoelig en staat netter (dan vallen hoofdletters nog op...).
 
Ozzie PHP

Ozzie PHP

12/08/2012 15:18:39
Quote Anchor link
Het is gebruikelijk om functienamen met een kleine letter te beginnen en voor een nieuw woord een hoofdletter te gebruiken. dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
function krijgInstelling($naam)


Daarnaast is het gebruikelijk om te programmeren in de Engelse taal, dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
function getSetting($name)
 
Jasper Vriends

Jasper Vriends

12/08/2012 15:26:38
Quote Anchor link
Eddy Erkelens op 12/08/2012 15:12:29:
Bijna perfect.

Je hebt nu nog wat onnodig gekopieer:
En het kan korter (zonder moeilijk te doen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function krijginstelling($naam){
    $res = mysql_query("SELECT status FROM Site_cron WHERE naam = '".$naam."'");
    $res = mysql_fetch_array($res);
    return $res['status'];
    }

?>


Daarnaast... waarom gebruik jij $VariabeleMetHoofdletter? Zonder hoofdletters is minder foutgevoelig en staat netter (dan vallen hoofdletters nog op...).


Dankje Eddy, ik zal het gebruiken ;)
Maar... Ik vind het juist weer fijner met hoofdletters, dan zie ik sneller waar het begint :) (En ik gebruik zo'n php editer, en die laat automatisch de variablen zien die bijv. beginnen met $Va... En dan kan je gewoon kiezen, gaat sneller dan je denkt XD)

Ozzie PHP op 12/08/2012 15:18:39:
Het is gebruikelijk om functienamen met een kleine letter te beginnen en voor een nieuw woord een hoofdletter te gebruiken. dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
function krijgInstelling($naam)


Daarnaast is het gebruikelijk om te programmeren in de Engelse taal, dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
function getSetting($name)


Ik programmeer Nederlands, dan is het ook gelijk een stuk geloofwaardiger dat ÍK het script heb gemaakt... En niet iemand anders ;)
En uhmm... Mag ik mijn eigen script maken en zeggen hoe ze moeten? Want dat 'gebruikelijke' maakt niks uit, het werkt gewoon...
Maar wel bedankt voor de informatie, dat ga ik dan voor mijn andere projecten misschien wel gebruiken :)

Bedankt voor het helpen Eddy en Ozzie :)

Mvg.
Jasper
Gewijzigd op 12/08/2012 15:29:02 door Jasper Vriends
 
Ozzie PHP

Ozzie PHP

12/08/2012 15:42:36
Quote Anchor link
Jasper Vriends op 12/08/2012 15:26:38:
Ik programmeer Nederlands, dan is het ook gelijk een stuk geloofwaardiger dat ÍK het script heb gemaakt... En niet iemand anders ;)
En uhmm... Mag ik mijn eigen script maken en zeggen hoe ze moeten? Want dat 'gebruikelijke' maakt niks uit, het werkt gewoon...

Het is ook maar een tip die ik je geef. Het zal ook allemaal best werken. Dat geloof ik direct. Maar deze "standaarden" helpen je wel als je met meerdere mensen gaat samenwerken. Engels is de standaardtaal (zodat ook mensen buiten Nederland je code kunnen lezen), en ook voor functiebenamingen worden bepaalde standaarden gebruikt.

Stel ik zou een heel groot huis hebben met een racebaan waar ik iedere dag rondjes op rij. Ik rij in m'n racewagen 300 km/uur en ik rij altijd aan de linkerkant van de weg omdat ik dat fijn vind. Dan ga ik voor het eerst in m'n leven rijden op de openbare weg waar ook andere weggebruikers op rijden. Hmmm, misschien kan ik toch maar beter niet 300 km/uur rijden en dat links rijden is ook niet altijd even handig merk ik nu.

"Regeltjes" zijn er niet voor niets. Of je er iets mee doet moet je helemaal zelf weten, maar zeg niet dat niemand je er ooit op gewezen heeft ;-)
 
- SanThe -

- SanThe -

12/08/2012 15:42:55
Quote Anchor link
Nu nog een nette foutafhandeling voor als de query mislukt.
En beveiliging van de query ontbreekt ook nog.
 
Jasper Vriends

Jasper Vriends

12/08/2012 16:04:10
Quote Anchor link
Ozzie PHP op 12/08/2012 15:42:36:
Jasper Vriends op 12/08/2012 15:26:38:
Ik programmeer Nederlands, dan is het ook gelijk een stuk geloofwaardiger dat ÍK het script heb gemaakt... En niet iemand anders ;)
En uhmm... Mag ik mijn eigen script maken en zeggen hoe ze moeten? Want dat 'gebruikelijke' maakt niks uit, het werkt gewoon...

Het is ook maar een tip die ik je geef. Het zal ook allemaal best werken. Dat geloof ik direct. Maar deze "standaarden" helpen je wel als je met meerdere mensen gaat samenwerken. Engels is de standaardtaal (zodat ook mensen buiten Nederland je code kunnen lezen), en ook voor functiebenamingen worden bepaalde standaarden gebruikt.

Stel ik zou een heel groot huis hebben met een racebaan waar ik iedere dag rondjes op rij. Ik rij in m'n racewagen 300 km/uur en ik rij altijd aan de linkerkant van de weg omdat ik dat fijn vind. Dan ga ik voor het eerst in m'n leven rijden op de openbare weg waar ook andere weggebruikers op rijden. Hmmm, misschien kan ik toch maar beter niet 300 km/uur rijden en dat links rijden is ook niet altijd even handig merk ik nu.

"Regeltjes" zijn er niet voor niets. Of je er iets mee doet moet je helemaal zelf weten, maar zeg niet dat niemand je er ooit op gewezen heeft ;-)



Ik bedoelde het niet boos he :$
Maar je hebt wel gelijk...

- SanThe - op 12/08/2012 15:42:55:
Nu nog een nette foutafhandeling voor als de query mislukt.
En beveiliging van de query ontbreekt ook nog.


Beveiliging... Nooit eigenlijk aan gedacht.. Ik ga het er op zetten als ik het kan vinden :)

En die foutafhandeling is denk ik niet echt nodig, het moet werken, en niet mag :)

Nogmaals bedankt allemaal :)

Mvg.
Jasper
 
Erwin H

Erwin H

12/08/2012 16:14:58
Quote Anchor link
Foutafhandeling zou je altijd moeten toepassen. Wat als bijvoorbeeld je query wel lukt, maar er gewoon geen rij uit de database wordt gehaald? Dan kan je "$res['status'];" niet doen en krijg je dus een fatale foutmelding en je script stopt dus. Kan je meteen niets meer. Een simpel try...catch blok zou dat al voorkomen en kan je een default waarde (0 of een lege string) teruggeven.

Vreemd dat zovele beginners denken dat altijd alles wel zal werken zoals ze denken, terwijl het zo simpel op te vangen is als het niet zo gaat. Leer het vroeg aan, dan is het later een vanzelfsprekendheid.
 
Jasper Vriends

Jasper Vriends

12/08/2012 16:22:59
Quote Anchor link
Erwin H op 12/08/2012 16:14:58:
Foutafhandeling zou je altijd moeten toepassen. Wat als bijvoorbeeld je query wel lukt, maar er gewoon geen rij uit de database wordt gehaald? Dan kan je "$res['status'];" niet doen en krijg je dus een fatale foutmelding en je script stopt dus. Kan je meteen niets meer. Een simpel try...catch blok zou dat al voorkomen en kan je een default waarde (0 of een lege string) teruggeven.

Vreemd dat zovele beginners denken dat altijd alles wel zal werken zoals ze denken, terwijl het zo simpel op te vangen is als het niet zo gaat. Leer het vroeg aan, dan is het later een vanzelfsprekendheid.


Als aller eerst, ik ben geen beginner ;)
Ten 2e, hij haalt alle velden uit de database, dus het kan niet dat een veld niet voorkomt... Dus dat kan niet...

ÉN ik gebruik ook foutafhandeling...

Jasper
 
Erwin H

Erwin H

12/08/2012 16:44:16
Quote Anchor link
Uhm, gezien je eerste script heb je nog veel te leren. Dat is helemaal niet erg en beginner is geen scheldwoord.
Ten tweede weet jij helemaal niet wat hij eruit haalt. Dat denk je, dat verwacht je. Maar als je op een zeker moment een foute string in '$InstellingNaam' hebt staan dan gaat je query goed, maar krijg je 0 records terug. Ga je toch mooi de mist in. Dan kan je uiteraard ergens later nog een andere waarde gebruiken, maar bij dit soort 'getters' is het veel netter om dan een default waarde terug te geven. Zo kan de rest van je script door zonder iets te hoeven checken.

Maar goed, goed advies wordt vaker in de wind geslagen (is je goed recht), maar denk er nog eens aan terug als je eens goede foutafhandeling hard nodig blijkt te hebben. Geloof me, op dat punt zijn we allemaal al eens beland (of zullen er nog belanden).
 
Obelix Idefix

Obelix Idefix

12/08/2012 16:46:21
Quote Anchor link
off topic: Jasper, je hoeft niet telkens alles te quoten als je ergens op reageert. Zeker niet als het bericht er direct bovenstaat :-)
 
Jasper Vriends

Jasper Vriends

12/08/2012 16:54:41
Quote Anchor link
Erwin, bij mijn eerste script, was ik inderdaad een beginner, daarna heb ik mezelf heel erg in PHP verdiept, en ik ben nu een project begonnen die vol zit met php, en die heb ik zelf gemaakt, login, chat, adminpaneel, berichten systeem, vrienden systeem, registratie. Dit doe ik dus allemaal in 4 weken :) Dus een beginner ben ik tegenwoordig niet meer... Plus ik weet wat ik doe...

En een beoordeling geven over het eerste script is logisch, maar niet het verklaren dat ik nog steeds beginner ben...

Obelix en Idefix, oke zal ik onthouden :)

Mvg.
Jasper
 
Albert de Wit

Albert de Wit

12/08/2012 17:02:37
Quote Anchor link
Tja, of je nu 4 weken al bezig bent met php maakt je nog steeds niet echt een professional hoor. Ik ben al ruim 1 jaar ermee bezig en weet ook nog wel dat ik hier een snotneus ben vergeleken met de meesten.
 
Jasper Vriends

Jasper Vriends

12/08/2012 17:04:46
Quote Anchor link
Maar zo bedoel ik het ook niet Albert :$
Ik zeg dat ik onderhand geen beginner meer ben... Niet dat ik de slimste ben of meer weet dan jullie :$

Jasper
 
Erwin H

Erwin H

12/08/2012 17:07:42
Quote Anchor link
Jammer dat je goede raad ziet als een aanval op je kunnen.
 
Albert de Wit

Albert de Wit

12/08/2012 17:08:57
Quote Anchor link
Jasper Vriends op 12/08/2012 17:04:46:
Maar zo bedoel ik het ook niet Albert :$
Ik zeg dat ik onderhand geen beginner meer ben... Niet dat ik de slimste ben of meer weet dan jullie :$

Jasper


Je bent inderdaad niet de slimste, je bent net als mij een beginner met php. Als je richting gevorderde gaat ben je namelijk al een jaar of 3 bezig.
 
Jasper Vriends

Jasper Vriends

12/08/2012 17:13:21
Quote Anchor link
Erwin:
Ik bedoel het allemaal goed?
Ik voel niks als een aanval hoor...
Misschien vind je dat ik misschien vervelend reageer, maar ik bedoel het allemaal aardig.

Albert:
Dit is ook niet mijn eerste jaar dat ik bezig ben met php, maar al jaren geleden... Maar toen was ik er niet zo diep ingegaan zoals ik nu doe, maar je hebt zeker gelijk ;)

Jasper
 
Erwin H

Erwin H

12/08/2012 17:20:58
Quote Anchor link
Jasper, en dan houd ik ermee op, je mag zo reageren als je wilt. Je scheld niet oid dus niets aan de hand.

Wat ik jammer vind is dat je zo verdedigend reageert op het advies over foutafhandeling. Dat je dat niet nodig hebt. Daarom... heb ik het woord beginner gebruikt. Het is namelijk een typische beginners fout om problemen in de scripts niet te zien. Uit je antwoorden blijkt dat je ervanuit gaat dat er in deze kleine functie niets mis kan gaan. Ik zie minimaal drie mogelijke fouten die kunnen optreden die jij nu niet opvangt. Niet in deze functie in elk geval. Als je meer ervaring krijgt zal je dat soort dingen ook gaan zien en begrijpen dat je JUIST bij dit soort kleine stukjes een correcte foutafhandeling zou moeten toepassen. Als je namelijk elke functie (en later class) zijn eigen boontjes laat doppen kan je in de rest van je script altijd zonder verdere mitsen en maren erop vertrouwen. Kan je altijd verder zonder dat je tegen rare problemen aan loopt.

Dat is waarom ik het woord beginner noemde en dat heeft te maken met het 'niveau' waarop je bezig bent, niet hoeveel weken/jaren of hoeveel scripts je al hebt gebouwd. Nogmaals, dat is absoluut geen aanval of denigrerende opmerking (excuses als je dat wel zo ziet). Het is een tip waar je verder mee mag doen wat je wilt.
 
Albert de Wit

Albert de Wit

12/08/2012 17:23:30
Quote Anchor link
Jasper Vriends op 12/08/2012 17:13:21:
Albert:
Dit is ook niet mijn eerste jaar dat ik bezig ben met php, maar al jaren geleden... Maar toen was ik er niet zo diep ingegaan zoals ik nu doe, maar je hebt zeker gelijk ;)

Jasper


Ik leer dit soort spul op school. De meeste mensen hier zijn klaar met mbo/hbo dat gespecialiseerd is rond webdevelopment
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.