Beste mensen,

ik ben een beetje bezig met het OOP programmeren. Nu ben ik een static function aan het maken voor de querys, zodat ik ze makkelijk kan aanroepen en uitvoeren, enkel weet ik niet precies wat ik aan het doen ben, of hoe ik het goed kan krijgen.

Hieronder zie je wat ik voor class heb gemaakt:


class query{
    
    public $query;
    
    public static function select($select, $from, $where){
        
        $query = mysql_query("SELECT ".$select."FROM ".$from."WHERE ".$where);
        return $query;
    }
}


Onderstaande code is een test van me, nog niet echt gebasseerd op een loginscript,
Zo roep ik mijn code aan:


$getUser = query::select("*", "users", "1=1");
var_dump($getUser);


Het resultaat van de var_dump is: boolean false

Uiteraard heb ik de class geincluded, dus dat zit allemaal wel goed.
Oké dan.
Heel simpel gezegd, je wilt iets met OOP doen en bouwt geen enkele foutafhandeling in.
Erwin heeft al duidelijk aangegeven waar de fout maar zonder fout afhandeling kom je daar nooit aan uit.
In OOP is moet je echt wel een control freak zijn

[size=xsmall]Toevoeging op 17/09/2013 21:12:55:[/size]

Ger van Steenderen op 17/09/2013 21:12:33

Oké dan.
Heel simpel gezegd, je wilt iets met OOP doen en bouwt geen enkele foutafhandeling in.
Erwin heeft al duidelijk aangegeven waar de fout zat maar zonder fout afhandeling kom je daar nooit aan uit.
In OOP is moet je echt wel een control freak zijn


Ik weet niet precies wat je bedoelt. Ik krijg namelijk nu een foutmelding over de mysql_num_rows die ik gebruik in mijn functie, maar dat begrijp ik niet zo goed wat er mis is.
Hmm, blijkbaar heb ik iets voor Jan L*l gezegd. Nog maar een keer dan:
Erwin H op 17/09/2013 20:26:55

Echo altijd even je query, zodat je precies ziet wat de query string is. Als je dan de fout nog niet ziet kan je altijd even proberen de query direct uit te voeren, in phpmyadmin, of in de command line tool van mysql.
Tevens wil je natuurlijk altijd in je query object zelf gaan kijken of een query lukt of niet en zo nee, een foutafhandeling toepassen. Lukraak het resultaat teruggooien is niet echt netjes.

Query al eens naar het scherm geprint? Zo ja dan zie je direct wat er fout is.

Ik zal ven wat comments aan jou code toevoegen:[code]<?php
include 'config/config.database.php';

class query{

public $query;

public static function select($select, $from, $where){

$query = mysql_query("SELECT ".$select." FROM ".$from." WHERE ".$where);
/**************************************
Hier MOET je controleren of de qury geslaagd is
*******************/
if($query !== false) {
if(mysql_num_rows($query) > 0){
return true;
} else{
return false
}
else return false;
}
}
Ik weet niet precies wat ik nu moet doen om mijn functie werkend te krijgen eerlijk gezegd.. Iemand ideeën?

[size=xsmall]Toevoeging op 17/09/2013 21:48:15:[/size]

Ik krijg namelijk met bovenstaande code van Ger van Steenderen een False terug. Hij geeft de false bij de else van ($query !== false) Dus de query is false, maar ik snap niet precies waarom.. En ik kan de query niet echoen
PRINT DE F*CKING QUERY NAAR HET SCHERM!!!!

Er zit namelijk een levensgrote fout in en die zie je blijkbaar zo niet, maar wel als je hem print.
Als je na drie keer het nog niet doet, stop ik ermee, dan weet je dat alvast.

Maar ik weet niet hoe ik de query naar het scherm moet printen! Ik zeg al een paar keer dat ik denk dat ik niet kan echo'en in een functie, of terwijl, hoe krijg ik die query op het scherm!
Jerry let op:
echo $query;
Niet meer vergeten he.
Bart, waar moet ik dit neerzetten? Als ik dit in mijn functie zet krijg ik null terug..
Niet de constructie die ik zou kiezen maar wat dacht je van de laatste else waar je false returnt.
Kan nu even geen voorbeeld tikken want zit mobiel.

Reageren