@slaszka: http://wykop-code.appspot.com/ polecam. Tak na oko to wygląda, że da się to zrobić w jednym zapytaniu. Takie zagnieżdżanie while'ów jest niezdrowe :<
@singollo: to po pierwszym zapytaniu fetchAll sciągnij sobie wszystkie ID które potrzebujesz, a w drugim zapytaniu wykorzystaj klauzule where id IN (klucze)
@slaszka: To nie jest istotne, czy przez PDO::prepare, czy przez PDO::query. Obie metody zwracają wartość. Tą wartość musisz przechować w taki sposób, żeby jej nie nadpisywać kolejnym zapytaniem.
W ogóle odpuść sobie wrappowanie PDO, bo to bez sensu. PDO samo w sobie jest wrapperem. Jeżeli masz potrzebę dodania jakichś funkcjonalności, których PDO nie ma, to zawsze możesz zrobić MyPDO extend PDO
$query1 = 'SELECT ......';
while($row = $f->fetch()){
$query2 = 'SELECT ......';
while($row = $f->fetch()){}
}
Bo tak nie działa gdyż mi wywala 1 wynik z tablicy
#php #pdo
Pierwszy przykład z brzegu z Google'a:
http://www.cs.put.poznan.pl/kjankiewicz/oracle/sql/06_PODZAPYTANIA/sld007.htm
Chcę jakoś utworzyć Identyfikator QUERY do Fetch jak to w zwykłym mysql
while($row = $f->fetch($query1)) // tyle ze nie wiem jak to obejść bo w PDO tak nie ma
Komentarz usunięty przez autora
zainteresuj się JOINami..
Edit: NIE mogę użyć JOINA
while ($row = $this->PDO_db->fetch()) {
$dane_rachunki = $this->PDO_db->query("SELECT * FROM tabela WHERE id = $row[DSN_ID]");
while ($row_rachunki = $this->PDO_db->fetch()) {
$row['rachunki'][] = $row_rachunki; //
///
/// RYPNY KOD OD MODYFIKACJI
///
}
$sync[] = $row;
}
Edit: Oczywiście selecty są duużo dłuższe i już z wieloma JOIN'ami
zamiast
while ($row_rachunki = $this->PDO_db->fetch()) {
spróbuj
while ($row_rachunki = $dane_rachunki->fetch())
I 2: lajtowo się da to zamknąć w dwóch zapytaniach bez korzystania z JOINów
$stmt1 = $pdo->prepare('SELECT ....');
$stmt2 = $pdo->prepare('SELECT cos_innego where id = :id';)
$stmt1->execute();
while ($row = $stmt1->fetch()) {
$stmt2->execute(array (':id' => $row['id']));
}
.. no coś w ten deseń...
Przez własną klasę
public function fetch(){
return $this->query_id->fetch(PDO::FETCH_ASSOC);
}
mam
Array
(
[0] => Array
(
[ID] => 1
[rachunki] => Array
(
[0] => Array
(
[id] => 11000
[dana] => test
)
[1] => Array
(
[DSL_DSRID] => 11000
[dana] => test2
)
)
)
)
Powinno być
Array
(
[0] => Array
(
[ID] => 1
[rachunki] => Array
(
[0]
W ogóle odpuść sobie wrappowanie PDO, bo to bez sensu. PDO samo w sobie jest wrapperem. Jeżeli masz potrzebę dodania jakichś funkcjonalności, których PDO nie ma, to zawsze możesz zrobić MyPDO extend PDO