fetchAll returns boolean.
function find_id_by_user_id( $user_id, $i ) {
$id = $this->fetchAll("SELECT location_id FROM user_location WHERE user_id = '".$user_id."' AND location_id != '".$i."'");
return $id;
}
Mijn bedoeling is om location_id te returnen zodat ik deze verder in mijn programma kan gebruiken, dit geeft nu een boolean met true als het bestaat.
Hoe kan ik dit de waarde van location_id laten returnen?
doe eens
Code (php)
wat je waarschijnloek zoekt is dit:
Code (php)
Gewijzigd op 07/01/2014 12:27:26 door Frank Nietbelangrijk
Proberen te fetchen op een string zal je altijd een 'false' opleveren.
Erwin, ik lees $this->fetchAll() wat waarschijnlijk betekent dat TS een eigen class heeft gemaakt. We zouden dan de method fetchAll eens moeten zien.
ik heb het stukje van Frank geprobeerd maar daarmee kreeg ik ook niks.
Ik maak inderdaad gebruik van een class, vergeten bij te zetten.
Hieronder de fetchAll method.
public function fetchAll($query = false){
if($query){
$this->query($query);
}
$this->execute();
$this->private_properties = $this->stmt->fetchAll(PDO::FETCH_ASSOC);
$class = get_called_class();
if($this->rowCount() == 0) $this->setArray(false);
$i = 0;
foreach($this->private_properties as $row) {
$this->items[$i] = new $class;
foreach($row as $key => $value){
$this->items[$i]->{$key} = $value;
}
$i++;
}
if($this->rowCount() == 1){
foreach($this->private_properties as $row) {
foreach($row as $key => $value){
$this->{$key} = $value;
}
$i++;
}
}
return $this->isArray();
}
Ik merk toch een aantal dingen die me vreemd en verwarrend lijken.
Wanneer dient een methode om een waarde te returnen? Wanneer dient een methode om een eigenschap (= $this-> variabele) een waarde te geven?
fetchAll() zou omgekeerd kunnen werken.
Nu geef je een true of false terug en steek je de gegevens in een eigenschap.
Je kan ook een true/false in een eigenschap steken, en zorgen dat fetchAll() een array teruggeeft met de resultaten.
Ik snap nu niet goed waar je al die gegevens steekt, ... en waarom.
Sowieso ook kijken naar de naamgeving. Uit de naam van een functie moet onmiddellijk duidelijk zijn of een functie iets verifieert (bv. isValidQuery() zou duidelijk een true of false geven); iets uitvoert of gegevens terug geeft.
---
fetchAll klinkt in mijn ogen als een functie die je zo gebruikt:
ik heb de class niet zelf geschreven, en dat is ook gelijk het probleem denk ik.
De gene bij wie ik hulp en uitleg over deze class zou kunnen vragen is ziek thuis op het moment,
zodra deze weer terug is ga ik met hem zitten voor wat uitleg.
M.v.g. Roy.