<?php 
include "inc/dbconnect.php";
include ("inc/datum.php");
$result = mysql_query("
    SELECT
        o.*,
        g.geslacht,
        g.naam,
        g.email,
        p.produkt,
        u.uitvoering,
				f.formaat,
				a.afwerking,
				aan.aantal
    FROM
        opdrachten AS o,
        gebruikers AS g,
        produkten AS p,
        uitvoeringen AS u,
				formaten AS f,
				afwerkingen AS a,
				aantallen AS aan
    WHERE
        o.relatienr = '".$map."'
    AND
        g.gebruikerid = '".$gebruiker_id."'
    AND
        p.produktid = o.produktid
    AND
        u.uitvoeringid = o.uitvoeringid
    AND
        f.formaatid = o.formaatid
    AND
        a.afwerkingid = o.afwerkingid
    AND
        aan.aantalid = o.aantalid
",$db);
while ($row = mysql_fetch_array($result)) 
{
$email = $row['email'];
$prijs = number_format($row['prijs'], 2, ',', '.');
$datumshow = fixDate($row['datum']);

				if ($alternate == "1") 
				{ 
				$color = "#efefef"; 
				$alternate = "2"; 
				} 
				else 
				{ 
				$color = "#dedede"; 
				$alternate = "1"; 
				} 

									 if ($row['formaat'] == 'custom')
									 {
									 $content_custom = '<table border=0 bgcolor=#FF8000 cellspacing=0 cellpadding=2 width=800>
									 <tr><td colspan=\"7\" class=\'kop3\'><b>'.$row['bestand'].'</b></td></tr>
									 <tr>
									 <td bgcolor='.$color.' width=250 class=\'kop2\'>Produkt</td>
									 <td bgcolor='.$color.' width=130 class=\'kop2\'>Uitvoering</td>
									 <td bgcolor='.$color.' width=90 class=\'kop2\'>Formaat</td>
									 <td bgcolor='.$color.' width=120 class=\'kop2\'>Afwerking</td>
									 <td bgcolor='.$color.' width=50 class=\'kop2\'>Aantal</td>
									 <td bgcolor='.$color.' width=100 class=\'kop2\'>Totaal</td>
									 </tr>
									 <tr>
									 <td bgcolor='.$color.' width=250>'.$row['produkt'].'</td>
									 <td bgcolor='.$color.' width=130>'.$row['uitvoering'].'</td>
									 <td bgcolor='.$color.' width=90>'.$row['kort'].' x '.$row['lang'].' cm.</td>
									 <td bgcolor='.$color.' width=120>'.$row['afwerking'].'</td>
									 <td bgcolor='.$color.' width=50>'.$row['aantal'].'</td>
									 <td bgcolor='.$color.' width=100>&euro; '.$prijs.'</td>
									 </tr>
									 </table>';
									 }
									 else
									 {
									 $content = '<table border=0 bgcolor=#FF8000 cellspacing=0 cellpadding=2 width=800>
									 <tr><td colspan=\"7\" class=\'kop3\'><b>'.$row['bestand'].'</b></td></tr>
									 <tr>
									 <td bgcolor='.$color.' width=250 class=\'kop2\'>Produkt</td>
									 <td bgcolor='.$color.' width=130 class=\'kop2\'>Uitvoering</td>
									 <td bgcolor='.$color.' width=90 class=\'kop2\'>Formaat</td>
									 <td bgcolor='.$color.' width=120 class=\'kop2\'>Afwerking</td>
									 <td bgcolor='.$color.' width=50 class=\'kop2\'>Aantal</td>
									 <td bgcolor='.$color.' width=100 class=\'kop2\'>Totaal</td>
									 </tr>
									 <tr>
									 <td bgcolor='.$color.' width=250>'.$row['produkt'].'</td>
									 <td bgcolor='.$color.' width=130>'.$row['uitvoering'].'</td>
									 <td bgcolor='.$color.' width=90>'.$row['formaat'].'</td>
									 <td bgcolor='.$color.' width=120>'.$row['afwerking'].'</td>
									 <td bgcolor='.$color.' width=50>'.$row['aantal'].'</td>
									 <td bgcolor='.$color.' width=100>&euro; '.$prijs.'</td>
									 </tr>
									 </table>';
									 }
									 $totaalopdrachten .= $content_custom.$content; 
} 

$body = '<html>
<head>
<style type=\'text/css\'>
<!--body { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none }
td { color: #464646; font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none }
td.kop2 {  color: #464646; font-family: Verdana; font-size: 11px; color: #000000; font-weight: bold; text-decoration: none }
td.kop3 {  color: #464646; font-family: Verdana; font-size: 12px; color: #FFFFFF; font-weight: bold; text-decoration: none }
a:link     { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:visited     { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:hover    { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:active    { color: #8c8c8c; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }-->
</style>
</head>
<body>';
	
$aanhef_klant = 'Geachte '.$row['geslacht'].' '.$row['naam'].',<br><br>
Uw opdracht is succesvol bij ons binnengekomen op '.$datumshow.'. Deze kunt u over 3 werkdagen afhalen. Eventuele vragen kunt u stellen via 
<a href=\'mailto:[email protected]?subject=vraag over map '.$map.'\'>deze link</a>.<br><br>
Wij danken u hartelijk voor uw opdracht.<br><br>';
	
$aanhef_colorstone = 'Onderstaand een nieuwe opdracht, binnengekomen op '.$datumshow.' via ftp map '.$map.'.<br><br>';

$headers  = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$totaal = $body.$aanhef_klant.$totaalopdrachten; 
$totaal_colorstone = $body.$aanhef_colorstone.$totaalopdrachten; 

$mail = "[email protected]";
mail($email, 'Uw opdracht', $totaal, $headers, 'From: '.$mail.'\r\n');
mail($mail, 'Nieuwe opdracht', $totaal_colorstone, $headers, 'From: '.$email.'\r\n');
?>
Bedankt, Blanche, voor je reactie. Dit script heb ik zelf in elkaar gezet door allerlei verschillende script te combineren tot 1 script. Ik wil dat mijn mailjte eruit komt te zien met een korte tekst zoals in de $aanhef staat om daaronder alle opdrachten onder elkaar te laten zien die de gebruiker heeft aangemaakt en afgerekend met de opmaak zoals getoond wordt in <style type=\'text/css\'>

Dit mailtje moet zowel naar de gebruiker als naar de beheerder van de site, vandaar $aanhef_klant en $aanhef_colorstone als twee aparte mailtjes.

Ik kan mij voorstellen dat als php je dagelijkse werk is je vindt dat dit onlogisch en vol fouten is, alleen zie ik als hobbyist niet deze fouten en onlogica. Ik ben al ruim een half jaar met deze applicatie bezig en dit is de laatste hobbel die ik moet nemen. Ik verneem daarom graag hoe ik dit script kan verbeteren maar op dit moment weet ik niet hoe... Ik ga in ieder geval de error_reporting erin zetten en kijken wat het resultaat is.
Dit is de foutmelding die ik in de error_reporting krijg;
Notice: Undefined variable: content_custom in /www/htdocs/colorsto/test/kassa_ideal_ok.php on line 183

Notice: Undefined variable: totaalcontent in /www/htdocs/colorsto/test/kassa_ideal_ok.php on line 183

Line 183 is;
$totaalcontent .= $content_custom.$content;

Dit wordt ook inderdaad gehusseld en soms dubbel verstuurt. Wat kan ik hieraan doen?
Is er iemand die mij wil of kan helpen?
Niet Bumpen.
Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
Ik heb al gezegd dat je script ontzettend onlogisch in elkaar zit en dat het vol met fouten staat. Als je nu eerst eens begint met het toepassen van de opmerkingen die in dit topic al gemaakt zijn, wordt het waarschijnlijk een stuk overzichtelijker en kun je er meer mee.

Dus:
- Kopieren van variabelen is nutteloos, gebruik gewoon $row['id']
- Ga die grote hoeveelheid queries eens terugbrengen naar 1 of enkele queries
- Ga netjes inspringen, dan zie je een duidelijk onderscheid tussen verschillende onderdelen in je script.

Verder:
- Gebruik gewoon 1 variabele voor de body van het mailtje waar je telkens data aan toevoegt. Aan die variabele voeg je bij elke loop een nieuwe opdracht toe.
- De aanhef kan natuurlijk gewoon buiten de while loop, die zal immers niet veranderen per opdracht.

Tenslotte zou ik dit script eens opnieuw schrijven. Het huidige script aanpassen kost je waarschijnlijk meer moeite...
Blanche, bedankt voor je geduld en reactie (het is niet dat ik lui of slordig ben maar ik snap het niet altijd). Ik heb geprobeerd jouw suggesties toe te passen (zie boven); gebruik van $row, netjes inspringen, 1 variabele voor de body en deze samen met de aanhef buiten de while loop geplaatst.

Ik weet alleen niet hoe ik de grote hoeveelheid queries tot 1 of enkele terug kan brengen? Daarnaast blijft de error_reporting hetzelfde...
Je zult een aantal JOIN's in je query moeten toepassen. Een begin:
<?php
$sql = "
SELECT
o.*,
g.naam,
g.geslacht,
g.email,
p.produkt,
u.uitvoering
FROM
opdrachten AS o,
gebruikers AS g,
produkten AS p,
uitvoeringen AS u
WHERE
o.relatienummer = '".$map."'
AND
g.gebruikerid = '".$gebruiker_id."'
AND
p.produktid = o.produktid
AND
u.uitvoeringid = o.uitvoeringid
";
?>
Dit kun je zelf verder uitbreiden.

ps. Verder spring je ook nog niet netjes en constant in. Dit is netter:
<?php
while()
{
if()
{
// code
}
elseif
{
// andere code
if()
{
// blaat
}
}
else
{
// code
}
}
// meer code
?>

pps. Regel 7 tm 16 is totaal nutteloos, verwijderen dus...
Alweer heel veel dank, Blanche, voor al je suggesties. Ik heb ze na veel testen correct kunnen toepassen (zie boven), alleen $email kreeg ik pas voor elkaar toen ik in de while loop $email = $row['email']; plaatste. Heb ik het zo goed gedaan?

Dan nog geeft de error_reporting de volgende foutmelding;
Notice: Undefined variable: content in /www/htdocs/colorsto/test/kassa_ideal_ok.php on line 157

Notice: Undefined variable: totaalopdrachten in /www/htdocs/colorsto/test/kassa_ideal_ok.php on line 157

line 157 = $totaalopdrachten .= $content_custom.$content;
Dat ziet er al stukken beter uit! Nu heb je de variabelen $content_custom en $content eigenlijk helemaal niet nodig. Je kunt die gewoon vervangen door $totaalopdrachten.

Met nog op een juiste manier inspringen, en wat andere kleine aanpassingen ziet je code er als volgt uit:
<?php
include "inc/dbconnect.php";
include "inc/datum.php";
$sql = "
SELECT
o.*,
g.geslacht,
g.naam,
g.email,
p.produkt,
u.uitvoering,
f.formaat,
a.afwerking,
aan.aantal
FROM
opdrachten AS o,
gebruikers AS g,
produkten AS p,
uitvoeringen AS u,
formaten AS f,
afwerkingen AS a,
aantallen AS aan
WHERE
o.relatienr = '".$map."'
AND
g.gebruikerid = '".$gebruiker_id."'
AND
p.produktid = o.produktid
AND
u.uitvoeringid = o.uitvoeringid
AND
f.formaatid = o.formaatid
AND
a.afwerkingid = o.afwerkingid
AND
aan.aantalid = o.aantalid
";

if(!$result = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
else
{
$totaalopdrachten = '';
while ($row = mysql_fetch_array($result))
{
$prijs = number_format($row['prijs'], 2, ',', '.');
$datumshow = fixDate($row['datum']);

if ($alternate == "1")
{
$color = "#efefef";
$alternate = "2";
}
else
{
$color = "#dedede";
$alternate = "1";
}

if ($row['formaat'] == 'custom')
{
$totaalopdrachten .= '<table border=0 bgcolor=#FF8000 cellspacing=0 cellpadding=2 width=800>
<tr><td colspan=\"7\" class=\'kop3\'><b>'.$row['bestand'].'</b></td></tr>
<tr>
<td bgcolor='.$color.' width=250 class=\'kop2\'>Produkt</td>
<td bgcolor='.$color.' width=130 class=\'kop2\'>Uitvoering</td>
<td bgcolor='.$color.' width=90 class=\'kop2\'>Formaat</td>
<td bgcolor='.$color.' width=120 class=\'kop2\'>Afwerking</td>
<td bgcolor='.$color.' width=50 class=\'kop2\'>Aantal</td>
<td bgcolor='.$color.' width=100 class=\'kop2\'>Totaal</td>
</tr>
<tr>
<td bgcolor='.$color.' width=250>'.$row['produkt'].'</td>
<td bgcolor='.$color.' width=130>'.$row['uitvoering'].'</td>
<td bgcolor='.$color.' width=90>'.$row['kort'].' x '.$row['lang'].' cm.</td>
<td bgcolor='.$color.' width=120>'.$row['afwerking'].'</td>
<td bgcolor='.$color.' width=50>'.$row['aantal'].'</td>
<td bgcolor='.$color.' width=100>&euro; '.$prijs.'</td>
</tr>
</table>';
}
else
{
$totaalopdrachten .= '<table border=0 bgcolor=#FF8000 cellspacing=0 cellpadding=2 width=800>
<tr><td colspan=\"7\" class=\'kop3\'><b>'.$row['bestand'].'</b></td></tr>
<tr>
<td bgcolor='.$color.' width=250 class=\'kop2\'>Produkt</td>
<td bgcolor='.$color.' width=130 class=\'kop2\'>Uitvoering</td>
<td bgcolor='.$color.' width=90 class=\'kop2\'>Formaat</td>
<td bgcolor='.$color.' width=120 class=\'kop2\'>Afwerking</td>
<td bgcolor='.$color.' width=50 class=\'kop2\'>Aantal</td>
<td bgcolor='.$color.' width=100 class=\'kop2\'>Totaal</td>
</tr>
<tr>
<td bgcolor='.$color.' width=250>'.$row['produkt'].'</td>
<td bgcolor='.$color.' width=130>'.$row['uitvoering'].'</td>
<td bgcolor='.$color.' width=90>'.$row['formaat'].'</td>
<td bgcolor='.$color.' width=120>'.$row['afwerking'].'</td>
<td bgcolor='.$color.' width=50>'.$row['aantal'].'</td>
<td bgcolor='.$color.' width=100>&euro; '.$prijs.'</td>
</tr>
</table>';
}
}

$body = '<html>
<head>
<style type=\'text/css\'>
<!--body { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none }
td { color: #464646; font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: none }
td.kop2 { color: #464646; font-family: Verdana; font-size: 11px; color: #000000; font-weight: bold; text-decoration: none }
td.kop3 { color: #464646; font-family: Verdana; font-size: 12px; color: #FFFFFF; font-weight: bold; text-decoration: none }
a:link { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:visited { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:hover { color: #464646; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }
a:active { color: #8c8c8c; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-decoration: underline }-->
</style>
</head>
<body>';

$aanhef_klant = 'Geachte '.$row['geslacht'].' '.$row['naam'].',<br><br>
Uw opdracht is succesvol bij ons binnengekomen op '.$datumshow.'. Deze kunt u over 3 werkdagen afhalen. Eventuele vragen kunt u stellen via
<a href=\'mailto:[email protected]?subject=vraag over map '.$map.'\'>deze link</a>.<br><br>
Wij danken u hartelijk voor uw opdracht.<br><br>';

$aanhef_colorstone = 'Onderstaand een nieuwe opdracht, binnengekomen op '.$datumshow.' via ftp map '.$map.'.<br><br>';

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$mail."\r\n";
$totaal = $body.$aanhef_klant.$totaalopdrachten;
$totaal_colorstone = $body.$aanhef_colorstone.$totaalopdrachten;

$mail = "[email protected]";

if(mail($row['email'], 'Uw opdracht', $totaal, $headers))
{
echo 'Mail naar klant verzonden!';
}
if(mail($mail, 'Nieuwe opdracht', $totaal_colorstone, $headers))
{
echo 'Mail naar colorstone verzonden!';
}
}
?>
Wellicht dat hij niet direct werkt, maar dan zul je nog wel een foutmelding ergens krijgen...
Blanche, alweer heel veeel dank! Ik heb jouw script toegepast, 3 opdrachten aangemaakt en in de mail geeft hij het als volgt weer;
1
3
2
i.p.v. 1,2,3. Dit is natuurlijk al een verbetering aangezien sommige opdrachten niet dubbel worden verstuurd maar is het ook mogelijk om de opdrachten in de juiste volgorde te versturen?

Daarnaast wordt er geen mail naar $row['email'] gestuurd. Alleen als ik $email = $row['email']; in de while loop stop wordt deze verstuurd!?

Reageren