Portál AbcLinuxu, 13. listopadu 2025 03:43
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);V sql dotazu mám nastavenou jako první položku tabulku s názvem 'key'
$sql = "SELECT `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;";a přesto se pole nevytvoří podle názvů klíčů z mysql ale vytvoří se tam číslování 0,1,2,3,4,5... Poradí někdo? Děkuji
fetchAll() vrací řádky (číslované) a v každém řádku je pole.
Vrací to pole polí, nebo-li dvou rozměrné pole, přičemž první úroveň má číselné klíče, a druhá, v tomto případě, názvy sloupců.
1. řádek a sloupec 'key': echo $result[0]['key'];
foreach($array as $key => $value){
echo $value[0]['key'];
}
Prostě jen takto
echo $value['key'];
Projdi to normálně pomocí fetch().
Jinak nerozumím řeči tvého kmene:
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $key => $value){
echo "The 'key' value: " . $value['key'] . " of row: $key\n";
}
$res = $db->prepare('SELECT * FROM table');
$res->execute();
while($row = $res->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
Na menší data, třeba i:
$res = $db->prepare('SELECT * FROM table');
$res->execute();
foreach($res->fetchAll(PDO::FETCH_ASSOC) as $row){
print_r($row);
}
$res = $db->prepare('SELECT * FROM table');
$res->execute();
$res->setFetchMode(PDO::FETCH_ASSOC); // Toto může být nastaveno globálně.
foreach($res as $row){
print_r($row);
}
$result = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);Funguje to jen pro 2 sloupce.
$sql = "SELECT `key`, `key`, `t1`, `t2` FROM `table` WHERE `t1` = ?;"; $q->fetchAll(\PDO::FETCH_ASSOC | \PDO::FETCH_GROUP | \PDO::FETCH_UNIQUE)Klíčem bude první sloupec a ten bude odebrán z pole, pokud ji tam chceš zdvoj ji.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.