Seite 1 von 1

PHP Hilfe gesucht

Verfasst: 29.10.2004, 23:36
von wein-wiessner
Hallo an Alle.
Habe ein kleines Porblem mit einem PHp-Skript.

Problem: Es soll in der automatisch erstellten E-Mail-Bestellbestätigung ein Hinweistext wiedergegeben (Angebotspreis) werden NUR wenn ein Artikel als Angebot markiert ist. Wenn nicht dann ohne diesen Hinweistext.

Wer kann helfen.

Hier der Codes-Auszug (neben der "Bezeichnung" vor dem "E.-Preis" soll der Hinweistext "Angebotspreis")

$msg.="\r\n\r\n";
$msg.=str_pad("Nr.",11);
$msg.=str_pad("Bezeichnung",38);
$msg.=str_pad("E.-Preis",10);
$msg.=str_pad("Menge",10);
$msg.=str_pad("Gesamt",10);
$msg.="\r\n";
$msg.=str_pad("-",77,"-");
$msg.="\r\n";

Etwas später im Code wird eine if-schleife aufgerufen welche den "E.-Preis" auf den normalen bzw. Angebotspreis prüft:

/* Auf Sonderangebot prüfen */
$query = "SELECT preis FROM angebote WHERE (nummer = '"
.$data["nummer"]."') AND (aktiv = '1') AND ( start <= CURDATE() AND ende >= CURDATE() )";
$tmp = mysql_query($query);
$tmp_data = @mysql_fetch_array($tmp);
if (@mysql_numrows($tmp)>0) {
$preis = $tmp_data["preis"];
$angebot = TRUE;
} else {
$preis = ($gru=="39" || $gru=="43" || $gru=="40" || $gru=="35" || $gru=="50")
? round($data["ek"]*$faktor2*10)/10
: round($data["ek"]*$faktor*10)/10;
$angebot = FALSE;
}
$menge = $s_artikel[$data["nummer"]];
$summe = $preis*$menge;
$preis_gesamt += $summe;

$msg.= substr(" ".number_format($preis,2,",",".")." EUR",-10);
$msg.= substr(" ".$menge." ",-6);
$msg.= substr(" ".number_format($summe,2,",",".")." EUR",-14);
$msg.="\r\n";

Vieleicht hat ja jemand eine gute Idee. Wäre sehr dankbar - gerne mit Wein!

VIELEN DANK VORAB,

euer Wein-Wiessner

Verfasst:
von

Verfasst: 30.10.2004, 11:34
von MikeD
wenn:
$msg.="\r\n\r\n";
$msg.=str_pad("Nr.",11);
$msg.=str_pad("Bezeichnung",3icon_cool.gif;
$msg.=str_pad("E.-Preis",10);
$msg.=str_pad("Menge",10);
$msg.=str_pad("Gesamt",10);
$msg.="\r\n";
$msg.=str_pad("-",77,"-");
$msg.="\r\n";

sich an der anzahl nix ändert - mach doch
$msg[0] = ...
$msg[1] = ....

Tausch dann das nachher aus was du austauschen willst
z.b.
$msg[3] = $angebotspreis;

und gib den emailtext dann über
while in ne neue Variable die du dann in die mail Anweisung steckst.

... oder ich habs falsch verstanden ;)

php hilfe

Verfasst: 30.10.2004, 11:38
von robo
Hi wein-wiessner,

ich weiss ja nicht, was in dem Stück Code, das du ausgelassen hast, noch alles kommt, aber ich würde alles vom ersten Block ab

Code: Alles auswählen

$msg.=str_pad&#40;"E.-Preis",10&#41;;
vor

Code: Alles auswählen

$msg.= substr&#40;" ".number_format&#40;$preis,2,",","."&#41;." EUR",-10&#41;;
reinpacken und dann in der if-Abfrage den Hinweis an $msg dranpappen ...

cu, Robo :)

Verfasst:
von

Verfasst: 30.10.2004, 13:34
von wein-wiessner
hallo robo und miked,

vielen dank für eure hilfe;
habe ich zwar nicht ganz verstanden what to do - bin hier in php absolut laie - aber hier der gesammte code; vieleicht hilft es weiter.


<body>
<table class="main"><tr><td colspan="3" class="head"><a href="index.php?<?php echo session_name()."=".session_id(); ?>"><img src="images/blind.gif" width="410" height="85" alt="" title="Zurück zur Startseite" border="0" /></a></td></tr>
<tr><td class="content">
<h1 class="clear">Bestellung</h1>
<h3>Vielen Dank!</h3>
<p>Ihre Bestellung ist bei uns eingegangen. Wir werden diese schnellstmöglich ausführen.</p>
<p class="right">&nbsp;</p>
<p>WICHTIGER HINWEIS: Das Verhalten einiger Kunden, die in der Absicht bestellen,<br>
die erhaltene Ware nicht zu bezahlen, veranlasst uns noch einmal ausdruecklich darauf hinzuweisen,<br>
dass wir neben der zivilrechtlichen Durchsetzung unserer Forderungen auch Strafantrag stellen.
</p>
<p>&nbsp; </p>
<?php

switch ($kunde["land"]) {
case "":
$land = "Deutschland";
break;
case "0":
$land = "Deutschland";
break;
case "1":
$land = "Deutschland";
break;
case "2":
$land = "Schweiz";
break;
case "3":
$land = "Österreich";
break;
}
$to1=$kunde["email"];
$to2="Shop@wein-wiessner.de";
$to3="info@respublic.de";
$to4="wein-wiessner@web.de";
$add="From: Shop@wein-wiessner.de\r\n";
$add.="Reply-To: ".$kunde["email"]."\r\n";
$kdnr=$s_KDnummer;
$msg.= "Kundennummer: $kdnr\r\n\r\n";
$msg.= "$s_name\r\n";
if ($kunde["firma"]!="") { $msg.= $kunde["firma"]."\r\n"; }
$msg.= $kunde["strasse"]."\r\n";
$msg.= $kunde["plz"]." ".$kunde["ort"]."\r\n";
$msg.= $land."\r\n";
if ($kunde["telefon"]!="") { $msg.= $kunde["telefon"]."\r\n"; }
$msg.= $kunde["email"]."\r\n";
$msg.="\r\n\r\n";
$msg.=str_pad("Nr.",11);
$msg.=str_pad("Bezeichnung",38);
$msg.=str_pad("E.-Preis",10);
$msg.=str_pad("Menge",10);
$msg.=str_pad("Gesamt",10);
$msg.="\r\n";
$msg.=str_pad("-",77,"-");
$msg.="\r\n";


/* Bestelldaten für Kundenpflege sichern */

$query = "INSERT INTO
bestellungen
( bestellID, kundenNR, rabatt, versand, zahlung, datum)
VALUES
( '', '$s_KDnummer', '0', '0', '0', '".date("Y-m-d")."') ";
$result = @mysql_query($query);
$bestellID = mysql_insert_id($link);

while (list($key, $menge) = @each($s_artikel)) { // Schleife für jeden Artikel
$query="SELECT bez1, bez2, nummer, ek, gruppe FROM artikel WHERE nummer='$key' ";
$resultID = mysql_query($query);
$data = mysql_fetch_array($resultID);
$gru = $data["gruppe"];
$j++;
$msg.= str_pad(substr("000000".$data["nummer"],"-10"),5)." ";
$msg.= str_pad(substr($data["bez1"],0,36), 36);
if ($data["bez2"]!="") {
$msg.= "\r\n ".str_pad(substr($data["bez2"],0,36), 36); }

/* Auf Sonderangebot prüfen */
$query = "SELECT preis FROM angebote WHERE (nummer = '"
.$data["nummer"]."') AND (aktiv = '1') AND ( start <= CURDATE() AND ende >= CURDATE() )";
$tmp = mysql_query($query);
$tmp_data = @mysql_fetch_array($tmp);
if (@mysql_numrows($tmp)>0) {
$preis = $tmp_data["preis"];
$angebot = TRUE;
} else {
$preis = ($gru=="39" || $gru=="43" || $gru=="40" || $gru=="35" || $gru=="50")
? round($data["ek"]*$faktor2*10)/10
: round($data["ek"]*$faktor*10)/10;
$angebot = FALSE;
}
$menge = $s_artikel[$data["nummer"]];
$summe = $preis*$menge;
$preis_gesamt += $summe;

$msg.= substr(" ".number_format($preis,2,",",".")." EUR",-10);
$msg.= substr(" ".$menge." ",-6);
$msg.= substr(" ".number_format($summe,2,",",".")." EUR",-14);
$msg.="\r\n";


/* Bestelldaten für Kundenpflege sichern */
$query = "INSERT INTO
bestelldaten
(bestellID, artikelNR, gruppe, menge, preis )
VALUES
('$bestellID', '".$data["nummer"]."', '$gru', '$menge', '$preis' )";
$result = mysql_query($query);


} // end while - Schleife für jeden Artikel
$msg.=str_pad("-",77,"-");
$msg.="\r\n";
$msg.="Summe:";
$msg.=str_pad(substr(" ".number_format($preis_gesamt,2,",",".")." EUR",-16),71," ",STR_PAD_LEFT);
$rabatt = $preis_gesamt*0.02;
if (substr($s_zahlung,0,1)>1 || $s_bankdaten>1) { // Rabatt bei Bankeinzug oder Kreditkarte ...
$msg.="\r\nRabatt:";
$msg.=str_pad(substr(" - ".number_format($rabatt,2,",",".")." EUR",-16),70," ",STR_PAD_LEFT);
$preis_gesamt = $preis_gesamt - $rabatt;
} else { $rabatt = 0; } // ... sonst kein Rabatt
if ($preis_gesamt>150) { // Versandkostenfrei ab 150 EUR
$versand=0;
}
$msg.="\r\nVersand:";
$msg.=str_pad(substr(" ".number_format($versand,2,",",".")." EUR",-16),69," ",STR_PAD_LEFT);
$msg.="\r\n";
$msg.=str_pad("-",77,"-");
$msg.="\r\nZu zahlen:";
$msg.=str_pad(substr(" ".number_format($preis_gesamt+$versand,2,",",".")." EUR",-16),67," ",STR_PAD_LEFT);
$msg.="\r\n";
$msg.=str_pad("=",77,"=");
$msg.="\r\n\r\n";
if ($s_bemerkung!="") {
$msg.="Bemerkung:\r\n";
$msg.=wordwrap($s_bemerkung,77);
}
$msg.="";
$msg.="\r\n";
$msg.="\r\nZahlungsweise: ";
$msg2=$msg;
switch (substr($s_zahlung,0,1)) {
case "1":
$msg.="Rechnung.\r\n";
$msg2.="Rechnung.\r\n";
break;
case "2":
$msg.="Bankeinzug abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Bankeinzug abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Inhaber: ".$kunde["inhaber"]." - Kontonummer: ".$kunde["nummer"]."\r\n";
$msg2.="BLZ: ".$kunde["blz"]." - Bank: ".$kunde["bank"]."\r\n";
break;
case "3":
$msg.="Kreditkarte (Euro-/MasterCard) abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Kreditkarte (Euro-/MasterCard) abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Kartendaten abfragen (verschlüsselt): https://xxx.xxx?kd="
.$kdnr
."\r\n";
# $msg2.="Inhaber: ".$kunde["inhaber"]." - Nummer: ".$kunde["nummer"]." - KPN: ".$kunde["pruef"]." - gültig: ".$kunde["gueltig"]."\r\n";
break;
case "4":
$msg.="Kreditkarte (Visa) abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Kreditkarte (Visa) abzüglich 2 % vom Warenwert.\r\n";
$msg2.="Kartendaten abfragen (verschlüsselt): https://xxx.xxx?kd="
.$kdnr
."\r\n";
# $msg2.="Inhaber: ".$kunde["inhaber"]." - Nummer: ".$kunde["nummer"]." - KPN: ".$kunde["pruef"]." - gültig: ".$kunde["gueltig"]."\r\n";
break;
}
$subj="Bestellung www.wein-wiessner.de (".number_format($preis_gesamt+$versand,2,",",".")." EUR)";

$fuss.="\r\n";
$fuss.="\r\n";



Wie gesagt, der korrekt epreis - auch bei angeboten - wird genau angegeben: es soll jedoch - wenn der artikel als Angebot definiert ist, bei dem preis zusätzlich die Infos "angebotspreis" stehen; wenn der artikel kein angebot ist dann nur der preis ohne die zusatzinfo.

danke vorab,

gruß

Verfasst: 30.10.2004, 13:52
von MikeD
$msg.= substr(" ".number_format($preis,2,",",".")." EUR",-10);
$msg.= substr(" ".$menge." ",-6);
$msg.= substr(" ".number_format($summe,2,",",".")." EUR",-14);
$msg.="\r\n";

folgendes dort hinsetzen wo dus brauchst in der Zeile:

if ($angebot == TRUE) {
$msg .= "Angebotspreis"; }

Angebotspreis einfach umändern so wie du den text brauchst.

Denke das sollte gehen.

Verfasst: 30.10.2004, 16:45
von wein-wiessner
Hallo MikeD,

heisst das beispielsweise

$msg.= substr(" ".number_format($preis,2,",",".")." EUR",-10);
if ($angebot == TRUE) {
$msg .= "Angebotspreis"; }
$msg.= substr(" ".$menge." ",-6);
$msg.= substr(" ".number_format($summe,2,",",".")." EUR",-14);
$msg.="\r\n";

und dann würde -nach der vorherigen if-schleife bei der abfrag nach normalen bzw. angebotspreis - hinter dem preis "angebotspreis" stehen, dann die menge etc.?

Bitte um Antwort bevor ich den Code ändere;
falls es klappt melde ich mich dann per pn wg. wein for you.

danke schon mal vorab!!!!

Verfasst: 30.10.2004, 16:48
von MikeD
sollte so sein - mach doch ne kopie von der datei und teste es mal kurz an.

Achja :-) - hab ein Leerzeichen vergessen: "Angebotspreis " bzw. " Angebotspreis" oder " Angebotspreis "

Wein - hab ich nicht gelesen :D
Die hilfe gabs im Rahmen der Nächstenliebe :wink:

Verfasst: 30.10.2004, 16:55
von wein-wiessner
hi mikeD,

probiere ich gleich mal aus. melde mich dann.
und danke für die nächstenliebe! selten geworden - aber Abakus- da werden Sie geholfen!

Verfasst: 30.10.2004, 17:11
von wein-wiessner
@MIKE D

SUPER!! KLAPPT WUNDERBAR!!!! Vielen Dank!!!!

Kannst Du mir auch evtl. noch verraten wie ich das am besten so positioniere dass der "ANGEBOTSPREIS" ÜBER dem Preis steht und folglich Preis, Menge und Summe eine Zeile später wiedergegeb werden so dass die Formatierung sauber ist bzw. das Erscheinungsbild stimmt.

Jetzt wird nämlich der Preis etc. nach rechts verschoben und steht nicht mehr unter den tabellenüberschriften.

DANK!!!! DANKE!!!! :D :D :D

Verfasst: 30.10.2004, 17:19
von MikeD
if ($angebot == TRUE) {
$msg .= "Angebotspreis";
$msg.="\r\n"; }
$msg.= substr(" ".number_format($preis,2,",",".")." EUR",-10);
$msg.= substr(" ".$menge." ",-6);
$msg.= substr(" ".number_format($summe,2,",",".")." EUR",-14);
$msg.="\r\n";

biddeschööön

Verfasst: 30.10.2004, 17:47
von wein-wiessner
MIKE D!!! KLASSE!! VIELEN DANK!!!

Sende mir doch per pn kontaktdaten (und wein-wunsch) zw. dankeschön.

ALSO. DANKE!!!!

Schönes Wochenende an DICH, dem Abakus-Forum und allen anderen Helfenden!!!! :D