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:


<?php
function KrijgInstelling($InstellingNaam){
    $KrijgSetting = mysql_query("SELECT status FROM Site_cron WHERE naam = '". $InstellingNaam ."'");
}
?>


Iemand een oplossing?

Mvg,
Jasper
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.
Maar hoe krijg ik hem dan zo ver dat hij het automatisch laat zien?

Ik gebruik het hiervoor:

<?php
if(KrijgInstelling("onderhoud") == "1"){}
?>


Jasper


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

jasper

[size=xsmall]Toevoeging op 12/08/2012 14:14:33:[/size]

Hij werkt nu, ik heb er deze code van gemaakt:

<?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 :)
Bijna perfect.

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

<?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...).
Het is gebruikelijk om functienamen met een kleine letter te beginnen en voor een nieuw woord een hoofdletter te gebruiken. dus:


function krijgInstelling($naam)


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


function getSetting($name)
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):

<?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:


function krijgInstelling($naam)


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


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
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 ;-)

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

[quote="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 ;-)


[/quote]

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
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.
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

Reageren