[php] while-lus in mail *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi iedereen,
zoals de titel beschrift wil ik graag een while-lus in een bericht van de mail.
Als ik een voorbeeld geef, wat ik heb geschreven (wat dus niet werkt):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
      if($aanhef != ""){

      $aanhef = "$aanhef ";

      } else {

      $aanhef = "";

      }

      $query4 = "SELECT * FROM bestel WHERE ip = '$ip'";
      $select4 = mysql_query($query4);

      $query5 = "SELECT * FROM besteld WHERE datum = '$datum', totaal = '$totaal', verzendmethode = '$verzendmethode'";
      $select5 = mysql_query($query5);

      while($obj = mysql_fetch_object($select5)){

      $id = $obj->id;

      }

      $jaar = str_replace('','20', $datum);
      $maand = date('m');

      if($maand < 10){

      $maand = "0$maand";

      } else {

      $maand = $maand;

      }

      $factuur = "$jaar$maand-$id";

      $bericht = "Hallo $aanhef$naam,

U heeft een bestelling geplaatst ten waarde van $bedrag.
De volgende producten die U heeft besteld zijn: 

      while($obj = mysql_fetch_object($select4)){

      echo "$obj->naam ($obj->totaal)<br>";

      }

Uw factuurnummer is: $factuur.
Hopelijk is alles goed verlopen en worden ze binnen 2 weken bezorgd!

Groeten!";

      $onderwerp = "Bestelling $id";

      mail($email, $onderwerp, $bericht, "From: $emailadres");

Dit is echter een klein deel van het gehele script.
Wat de bedoeling is: ik wil graag de bestelde producten in de mail laten weergeven zodat de klant zelf kan zien wat hij heeft besteld (ook al weet hij het zelf), maar voor bevestiging of het klopt.
Dat lukt mij dus niet, ik heb al verschillende malen gekeken, zoals bij phpfreakz.nl...
Of moet ik het anders doen of eh?

Alvast bedankt!
BigBear.

[ Voor 21% gewijzigd door Verwijderd op 11-06-2004 18:12 ]


Acties:
  • 0 Henk 'm!

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Ik ben niet gehinderd door enige kennis van php, maar zou je niet gewoon het volgende kunnen doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$bericht = "Hallo $aanhef$naam, 
 
U heeft een bestelling geplaatst ten waarde van $bedrag. 
De volgende producten die U heeft besteld zijn: "

while($obj = mysql_fetch_object($select4)){ 
      $bericht += "$obj->naam ($obj->totaal)<br>"; 
} 

$bericht += "Uw factuurnummer is: $factuur. 
Hopelijk is alles goed verlopen en worden ze binnen 2 weken bezorgd! 
 
Groeten!"

Dus de while() uit je bericht halen, want een while() als text in een bericht zetten gaat natuurlijk nooit werken. En elk product aan de string $bericht vastplakken. ik weet niet of dat met += kan, maar php heeft vast wel een manier om 2 strings aan elkaar vast te plakken.

"He took a duck in the face at two hundred and fifty knots."


Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
PHP:
1
2
3
while ($obj=mysql_fetch_object($select4)) {
  $bericht.=$obj->naam . " (" . $obj->totaal . ")<BR>";
}


^ zo is die wat logischer ;).

@_Squatt_: .= moet je gebruiken voor strings te concatenaten en niet += ;)

[ Voor 31% gewijzigd door Shadowman op 11-06-2004 18:25 ]


Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

De manier waarop je hier $bericht vult zal ongetwijfeld tot een serie parse-errors leiden lijkt me. Whilelus is geen probleem, maar wel als je dat in een variabele gaat frotten.

Wat je hier doet kan volgens mij geen goed resultaat opleveren:
PHP:
38
39
40
41
42
43
44
45
$bericht = "Hallo $aanhef$naam,

U heeft een bestelling geplaatst ten waarde van $bedrag.
De volgende producten die U heeft besteld zijn: 

      while($obj = mysql_fetch_object($select4)){

etc...


Kun je dat bericht niet op de volgende manier opbouwen?

PHP:
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
ob_start();


echo "Hallo " . $aanhef$naam . ",<br>";

echo "U heeft een bestelling geplaatst ten waarde van " . $bedrag . ".<br>";
echo "De volgende producten die U heeft besteld zijn:<br>";

      while($obj = mysql_fetch_object($select4)){

      echo "$obj->naam ($obj->totaal)<br>";

      }

echo "Uw factuurnummer is: " . $factuur . ".<br>";
echo "Hopelijk is alles goed verlopen en worden ze binnen 2 weken bezorgd!<br><br>";
echo "Groeten!"; 

$bericht = ob_get_contents();
ob_end_clean();

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hmm dat kan ook, maa rhet is al opgelost met $bericht .=
hardstikke bedankt mensen! :)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

* taal in titel

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1