Hi allemaal,

2de vraag van vandaag.

PROBLEEM:
Op basis van het result van een Oracle query wil ik een tabel laten genereren,
waar het aantal results het aantal columns met nog 1 ervoor en 2 erachter.
<?php
while ($row = oci_fetch_array($airport, OCI_ASSOC+OCI_RETURN_NULLS)) {
foreach ($row as $item) {
echo " <td></td>\n";
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
echo " <td></td>\n";
echo " <td></td>\n";
};
};
?>

Hoe kan ik hieronder nu nog 17 rijen extra laten genereren?

Thanks alvast,

Yannick
Wat zit er allemaal in $row (en hoe luidt de oorspronkelijke query) en hoe dient de uiteindelijke tabel er uit te komen zien?

Als je dat op een rij hebt gezet, heb je ook voor jezelf (al) duidelijk gemaakt wat er zou moeten gebeuren :).
weet je vooraf hoeveel kolommen er zijn in de query?

zo ja, dan maak je in een for-lus nog 17 rows erbij met aantal+3 <td>s erin....

Zo nee, dan staat het aantal ook in oci_num_rows() en dan is eigenlijk net hetzelfde
Hi iedereen:

originele query is:

<?php
$conn = oci_connect('xxx', 'xxx', 'xxxx');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$airport = oci_parse($conn,
"
SELECT
FLT_APT_IATA_CODE_DEP ADEP
FROM
MASTER.FLIGHTS
WHERE
FLT_COM_DEP_BLK BETWEEN TRUNC(SYSDATE) AND SYSDATE+60
AND FLT_LFS_ID=100
AND INSTR(UPPER(FLT_TEXT_AS_SPECIAL),'_CID='||'$contractnr')>0
ORDER BY 1
");

oci_execute($airport);

?>

De tabel moet er als volgt uitzien:

......|result1|result2|result3|....
-----------------------------------
slots |.......|.......|.......|....
-----------------------------------
hotac |.......|.......|.......|....

enz. tot ik 17 rijen heb.

@Ivo P: Neen ik weet niet op voorhand hoeveel kolommen er gaan zijn.

Alvast bedankt voor de verdere hulp.




Oi. Verwijder je db credentials eens :/.

EDIT: Als ik het goed begrijp wil je dus resultaatrijen weergeven als kolommen in een tabel?
ik zie dat ik hierboven oci_num_rows() typte, waar ik oci_num_fields() bedoelde.
Ik snap nog steeds niet goed wat je nou precies wil, rijen of kolommen? Als het gewoon een kwestie is van altijd x aantal kolommen of rijen genereren kun je natuurlijk zo iets doen:
<?php
while ($row = oci_fetch_array($airport, OCI_ASSOC+OCI_RETURN_NULLS)) {
$c = 0;
foreach ($row as $item) {
echo " <td></td>\n";
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
echo " <td></td>\n";
echo " <td></td>\n";
$c++;
}
for($i=0;$i<(20-$c);$i++)
{
echo "<td></td>\n";
}
}
?>

Reageren