[OOP][PDO]Opvragen van resultaten uit database geeft een lege echo

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

MrX

MrX

09/11/2009 15:08:00
Quote Anchor link
Bij het uitvoeren van volgend script krijg ik een lege pagina te zien.
Ik heb het script ondetussen 500X gelezen en ik zie de fout niet.

SCRIPT:
Code (php) 1234567891011121314151617181920212223242526272829303132333435363738394041424344 <?phpsession_start();// Database connectclass dbconnection {    protected $dblink;    private $server, $username, $password, $dbname;    public function __construct($server, $username, $password, $dbname) {        $this->server = $server;        $this->username = $username;        $this->password = $password;        $this->dbname = $db;        $this->open();    }    // Open    private function open(){        $this->db = new PDO(mysql:host=.$this->server.;dbname=.$this->dblink, $this->username, $this->password);    }        // Een Query maken    public function select($what = , $where = ){        if ($what == || $where == ){            return ERROR: Geen query uitgevoerd!;        } else {            $sql = "SELECT count(".$what.") FROM `".$where."`";            $result = $con->prepare($sql);            $result->execute();            return $result->fetchColumn();            $results = $this->db->query($sql);            while($results = $row){                return $row[naam].<br>;            }        }    }}// Nieuwe connectie$db = new dbconnection(localhost, root, w8wrd, dbnaam);echo $db->select(*, tabel);?>

BEDOELING:
Toon de namen uit een database-tabel
 
PHP hulp

PHP hulp

29/03/2024 15:43:02
 
Koen

koen

09/11/2009 15:20:00
Quote Anchor link
wil niet gek lijken,
maar zie ik in je code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
while($results = $row){
            return $row['naam'].'<br>';
?>


maar nergens een $row die aangemaakt word??? :S
Gewijzigd op 01/01/1970 01:00:00 door koen
 
MrX

MrX

09/11/2009 15:24:00
Quote Anchor link
even het juiste script posten... die ook fout is :(

Code (php) 1234567891011121314151617181920212223242526272829303132333435363738394041 &lt;?phpsession_start();// Database connectclass dbconnection {&nbsp;&nbsp;&nbsp;&nbsp;protected $dblink;&nbsp;&nbsp;&nbsp;&nbsp;private $server, $username, $password, $dbname;&nbsp;&nbsp;&nbsp;&nbsp;public function __construct($server, $username, $password, $dbname) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;server = $server;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;username = $username;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;password = $password;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;dbname = $db;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;open();&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;// Open&nbsp;&nbsp;&nbsp;&nbsp;private function open(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;db = new PDO(mysql:host=.$this-&gt;server.;dbname=.$this-&gt;dblink, $this-&gt;username, $this-&gt;password);&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Een Qeury maken&nbsp;&nbsp;&nbsp;&nbsp;public function select($what = , $where = ){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($what == || $where == ){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ERROR: Geen query uitgevoerd!;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = &quot;SELECT &quot;.$what.&quot; FROM `&quot;.$where.&quot;`&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$results = $this-&gt;db-&gt;query($sql);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while($row = $results){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $row[naam].&lt;br&gt;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}}// Nieuwe connectie$db = new dbconnection(localhost, root, w8wrd, databasenaam);echo $db-&gt;select(*, navigation);?&gt; [linebreak]
Gewijzigd op 01/01/1970 01:00:00 door MrX
 
Koen

koen

09/11/2009 15:31:00
Quote Anchor link
okj, volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
select($what = '', $where = '')

hier geef je SELECT en '' als selectie...
in databases is '' niks, dus krijg je ook niks...
lijkt mij dan 0:)
Gewijzigd op 01/01/1970 01:00:00 door koen
 
MrX

MrX

09/11/2009 15:36:00
Quote Anchor link
Onderaan het script roep ik die functie op met:
echo $db->select('*', 'navigation');
dus $what word dan toch * en $where word navigation of ben ik dan mis?
 
Giel

Giel

09/11/2009 15:39:00
Quote Anchor link
Als je eens select($what = '*', $where = 'navigation') probeert in de functie. En hij doet het dan, dan zit je verkeerd ja.. Anders niet.. ;-)
 
Koen

koen

09/11/2009 15:41:00
Quote Anchor link
als ik het goed zie:
zet je eerst je $what en $where, op niks...
en dan doorloop je de query(met niks)
en dan onderaan herbenoem je $what en $where met '*' en 'navigation'

probeer anders:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
public function select($what, $where)
Gewijzigd op 01/01/1970 01:00:00 door koen
 
MrX

MrX

09/11/2009 15:44:00
Quote Anchor link
Giel schreef op 09.11.2009 15:39:
Als je eens select($what = '*', $where = 'navigation') probeert in de functie. En hij doet het dan, dan zit je verkeerd ja.. Anders niet.. ;-)
Ik heb gedaan zoals je zei, het resultaat is nog steeds hetzelfde
koen schreef op 09.11.2009 15:41:
als ik het goed zie:
zet je eerst je $what en $where, op niks...
en dan doorloop je de query(met niks)
en dan onderaan herbenoem je $what en $where met '*' en 'navigation'
Dat is niet waar, onderaan roep ik de functie op, als $what en $where niet ingevuld zijn dan pas word het niets en krijg ik ook de melding dat ik niets heb ingevuld.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
public function select($what, $where)
Ook al eerder geprobeerd, geeft ook een lege pagina.
Gewijzigd op 01/01/1970 01:00:00 door MrX
 
Koen

koen

09/11/2009 15:50:00
Quote Anchor link
okj, volgende poging :P
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 "SELECT ".$what." FROM `".$where."`"
?>

je sluit je $where wel tussen ``, maar je $what niet..
(voor als je het nog niet door had, ik doe ook maar wat zeggen, ik weet nog niet zo goed hoe OOP php werkt 0:-))
Gewijzigd op 01/01/1970 01:00:00 door koen
 
MrX

MrX

09/11/2009 16:02:00
Quote Anchor link
Die `` zijn niet verplicht
koen schreef op 09.11.2009 15:50:
(voor als je het nog niet door had, ik doe ook maar wat zeggen, ik weet nog niet zo goed hoe OOP php werkt 0:-))
Ik had het wel al door maar alle informatie is welkom, het zal wel iets onbenullig zijn waar ik over kijk
Gewijzigd op 01/01/1970 01:00:00 door MrX
 
Koen

koen

09/11/2009 16:09:00
Quote Anchor link
nouja zal proberen mee te denken, kan ik uiteindelijk ook alleen maar meer van leren toch?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "SELECT count(".$what.") FROM `".$where."`";

met een count() krijg je zoiezo de namen niet trug, maar het aantal :P
 
MrX

MrX

09/11/2009 16:22:00
Quote Anchor link
Kijk naar het 2de script die ook fout is, daar staat geen count
 
Koen

koen

09/11/2009 16:27:00
Quote Anchor link
heb je beide versie geprobeerd in de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
public function select($what, $where')

manier?
en misschien als je onderin zegt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $db->select($what='*',$where='navigation');
?>

??
edit:
ik kan me vergissen , maar is dit niet de manier waarop je met die functies moet werken?
je geeft in deze opstelling de waardes aan de variabele, pas als je de functie aanroept, niet andersom toch?
Gewijzigd op 01/01/1970 01:00:00 door koen
 



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.