Discussione:
Stampa array associativo
(troppo vecchio per rispondere)
gianx
2008-08-06 05:13:48 UTC
Permalink
Ciao a tutti,
ho uno script php che chiama una funzione la quale ritorna un array
associativo risultato di oci_fetch_array($stid, OCI_RETURN_NULLS).

A questo punto il programma principale dovrebbe stampare il risultato
della query "parsando" l'array di cui però a priori non so ne il
numero dei record, nè il nome dei campi (le chiavi degli array).

Non posso usare istruzioni del tipo while($riga =
oci_fetch_array($stid, OCI_RETURN_NULLS)) perchè l'array esiste già ed
è il prodotto appunto di un fetching restituito da una sotto funzione.

Come posso fare quindi?

Grazie a tutti, Gian
Momo
2008-08-06 08:46:33 UTC
Permalink
Post by gianx
Non posso usare istruzioni del tipo while($riga =
oci_fetch_array($stid, OCI_RETURN_NULLS)) perchè l'array esiste già ed
è il prodotto appunto di un fetching restituito da una sotto funzione.
Come posso fare quindi?
Grazie a tutti, Gian
Non so se ho capito bene quello che ti serve....se hai già raccolto un
array con tutti i record del risultato un semplice ciclo
"foreach($array as $key => $riga) { }" dovrebbe andare bene...
altrimenti, se hai solo eseguito la query con oci_execute...quello che
ottieni con oci_fetch_array() è l'array di un record alla
volta...quindi, o li raccogli in un altro array "contenitore" e poi li
utilizzi come vuoi:

while($riga = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
$lista[] = $riga;
}
foreach($lista as $key => $riga) {
echo "<h2>" . $riga['titolo'] . "</h2>";
echo "<p>" . $riga['testo'] . "</p>";
}

oppure esegui direttamente le operazioni che devi fare, su $riga:

while($riga = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
echo "<h2>" . $riga['titolo'] . "</h2>";
echo "<p>" . $riga['testo'] . "</p>";
}


laura
gianx
2008-08-06 11:53:15 UTC
Permalink
Ciao Laura, grazie mille innanzitutto.
Il mio problema però è che a priori non conosco il nome delle colonne/
chiavi, ossia quelle che tu chiami 'titolo' e 'descrizione'.
Dovrei quindi oltre che fare un ciclo sulle righe, anche sulle
colonne.
Come posso fare?

Grazie, Gian
Post by Momo
Post by gianx
Non posso usare istruzioni del tipo while($riga =
oci_fetch_array($stid, OCI_RETURN_NULLS)) perchè l'array esiste già ed
è il prodotto appunto di un fetching restituito da una sotto funzione.
Come posso fare quindi?
Grazie a tutti, Gian
Non so se ho capito bene quello che ti serve....se hai già raccolto un
array con tutti i record del risultato un semplice ciclo
"foreach($array as $key => $riga) { }" dovrebbe andare bene...
altrimenti, se hai solo eseguito la query con oci_execute...quello che
ottieni con oci_fetch_array() è l'array di un record alla
volta...quindi, o li raccogli in un altro array "contenitore" e poi li
while($riga = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
      $lista[] = $riga;}
foreach($lista as $key => $riga) {
      echo "<h2>" . $riga['titolo'] . "</h2>";
      echo "<p>" . $riga['testo'] . "</p>";
}
while($riga = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
      echo "<h2>" . $riga['titolo'] . "</h2>";
      echo "<p>" . $riga['testo'] . "</p>";
}
laura
gianx
2008-08-06 12:09:43 UTC
Permalink
Risolto, grazie 1000 comunque!
Post by gianx
Ciao Laura, grazie mille innanzitutto.
Il mio problema però è che a priori non conosco il nome delle colonne/
chiavi, ossia quelle che tu chiami 'titolo' e 'descrizione'.
Dovrei quindi oltre che fare un ciclo sulle righe, anche sulle
colonne.
Come posso fare?
Grazie, Gian
Continua a leggere su narkive:
Loading...