Hallo allemaal,

het is my gelukt om connectie te maken met een Oracle database en de resultaten
mooi weer te geven in html. Nu moet ik echter er ook voor zorgen dat deze resultaten
ook gemaild kunnen worden.

Daar loopt het echter een beetje vast ik gebruik phpmailer maar van zodra ik
iets in de $body zet wil de php niet meer parsen. Ik krijg ook geen foutmeldingen
en error reporting staat op E_ALL.

Kan er mij iemand zeggen waar ik fout zit?

de SQL code:

"
SELECT 
FLT_LFC_ID||' ('||LFC_NAME||')' \"Operator\",LFT_LABEL \"Type of flight\",NVL(OPR,0) \"Operated\",NVL(CNL,0) \"Cancelled\"
FROM
	(SELECT DISTINCT FLT_LFC_ID,FLT_LFT_ID FROM MASTER.FLIGHTS WHERE TRUNC(FLT_COM_DEP_BLK) = '$newdatum' ) T0 
LEFT OUTER JOIN
(
SELECT FLT_LFC_ID LFC_ID1,FLT_LFT_ID LFT_ID1,COUNT(*) OPR FROM MASTER.FLIGHTS WHERE FLT_LFS_ID=100 AND TRUNC(FLT_COM_DEP_BLK) = '$newdatum'
GROUP BY FLT_LFC_ID,FLT_LFT_ID
) 
T1 ON (FLT_LFC_ID=T1.LFC_ID1 AND FLT_LFT_ID=LFT_ID1)
LEFT OUTER JOIN
(
SELECT FLT_LFC_ID LFC_ID2,FLT_LFT_ID LFT_ID2,COUNT(*) CNL FROM MASTER.FLIGHTS  INNER JOIN MASTER.FLT_PAX ON FLT_ID=FPX_FLT_ID 
WHERE FLT_LFS_ID=999 AND FPX_Y_BOOKED+FPX_C_BOOKED+FPX_F_BOOKED>0 AND TRUNC(FLT_COM_DEP_BLK) = '$newdatum'
GROUP BY FLT_LFC_ID,FLT_LFT_ID
) T2 ON (FLT_LFC_ID=T2.LFC_ID2 AND FLT_LFT_ID=T2.LFT_ID2 )
INNER JOIN MASTER.LIST_FLT_TYPES ON FLT_LFT_ID=LFT_ID 
INNER JOIN MASTER.LIST_FLT_COMPANIES ON FLT_LFC_ID=LFC_ID
WHERE NVL(OPR,0)+NVL(CNL,0)>0 ORDER BY 1,2

");
	
oci_execute($SUM);


Dit werk zonder problemen maar hoe krijg ik het in de $body, de "gewone php code" om et in html weer te geven is als volgt:

<html>
<h2>DAILY OPS REPORT <?php echo"$datum" ?>:<br>
  <br>
  Summary
</h2>
<table class="curvedEdges" width="600" border="0" cellpadding="10">
  <tr>
    <td width="200"><strong>Carrier:</strong></td>
    <td width="100"><strong>Type:</strong></td>
    <td width="100"><strong>Operated:</strong></td>
    <td width="100"><strong>Cancelled:</strong></td>
  </tr>
  <?php 
  while ($row = oci_fetch_array($SUM, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
};
?>
</table>
</body>
</html>


thanks alvast.

Yannick
Waarom regel 88 en verder met mysql? Je gebruikt toch Oracle?
Regel 62 echo"$body"; kan weg.

Zet deze regel ook eens bovenin:
ini_set('display_errors', 1);
@Aar : de e-mailadressen komen uit een mysql database, ik zie wel dat ik de connectie vergeten was te melden
omdat die standaard in de index.php staat.
Waarschijnlijk verschillende databases?

Maar dat is wel een interessant gegeven, errors in MySQL worden onderdrukt, dus wellicht zit daar de fout, wat als gevolg heeft dat het mailen ook niet lekker loopt.

Zorg er eerst eens voor dat je je probleem isoleert. Waar zit dit? In het Oracle gedeelte? In het MySQL gedeelte? In het vervolgens mailen?

Error reporting staat al aan in het bovenstaande script zie ik.

Begin maar eens met het dumpen van data naar je scherm om te zien waar de boel vastloopt.

EDIT: En wat SanThe zegt. Zorg dat foutmeldingen ook getoond worden.
@SanThe & Aar: probleem opgelost met de ini_set('display_errors', 1); ../ en de fout was opgelost want lag dat hij require("scripts/class.phpmailer.php"); niet vond. Thanks voor de hulp!

Reageren