Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
kollege
Anmeldungsdatum: 20.01.2010 Beiträge: 2
|
Verfasst am: 20.01.2010 18:45:11 Titel: if/else abfrage |
|
|
manchmal sind es die kleinen dinge, die einen zur verzweiflung treiben - in diesem fall eine popelige if/else abfrage.
das problem: ich verwende eine komponente, die es ermöglicht, punkte zu sammeln, wenn ein neukunde von einem bestandskunden empfohlen wurde. in dem fall erhält der bestandskunde punkte gutgeschrieben.
diese funktion wurde in die "checkout_payment.php"-datei integriert. funktioniert tadellos, aaaaaber leider wird die abfrage "Kamen Sie auf Empfehlung eines Kunden" jedesmal - also auch bei "altkunden" angezeigt.
hier der original-code:
function referral_input() {
if (tep_not_null(USE_REFERRAL_SYSTEM)) {
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="mainred"><b><?php echo TABLE_HEADING_REFERRAL; ?></b></td>
</tr>
</table></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" width="100%" cellspacing="5" cellpadding="2">
<tr>
<td width="60%" class="main"><?php echo TEXT_REFERRAL_REFERRED; ?></td>
<td width="40%" align="RIGHT" class="main"><?php echo tep_draw_input_field('customer_referred', $customer_referred); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
}
}
?>
optimal wäre es jedoch, wenn in dem code vorher eine abfrage stattfindet, die feststellt, ob es sich um einen neu- oder bestandskunden handelt.
möglich wäre dies, indem abgefragt wird, ob der besteller über eine kundennummer (bei mir "customers_additional_customers_number") verfügt. bei neukunden kann das nicht sein, da die kundennummer bei uns "von hand" vergeben wird ...
z.b. if kundennummer (leer), dann echo code oben, sonst einen text (z.b. empfehlen sie uns weiter und kassieren punkte ... oder so)
hab versucht, das problem wie folgt zu lösen, aber irgendwie steh ich auf dem schlauch ...
$customers_additional_customers_number_abfrage = "SELECT customers_additional_customers_number FROM" . TABLE_CUSTOMERS . "WHERE customers_additional_customers_number AND customer_id IS NOT NULL";
$customers_additional_customers_number_ergebnis = mysql_query($customers_additional_customers_number_abfrage);
if ($customers_additional_customers_number_ergebnis == 'true') {
echo WEITEREMPFEHLEN;
} else {
?> <table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="mainred"><b><?php echo TABLE_HEADING_REFERRAL; ?></b></td>
</tr>
</table></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" width="100%" cellspacing="5" cellpadding="2">
<tr>
<td width="80%%" class="main"><?php echo TEXT_REFERRAL_REFERRED; ?></td>
<td width="20%%" align="RIGHT" class="main"><?php echo (tep_draw_input_field('customer_referred', $customer_referred))?>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
}
}
}
?>
egal, ob im feld kundennummer (customers_additional_customers_number) etwas eingetragen ist oder nicht - es wird immer die abfrage "Wurden Sie empfohlen" angezeigt ...
jemand ne idee?
danke.
georg |
|
Nach oben |
|
 |
kollege
Anmeldungsdatum: 20.01.2010 Beiträge: 2
|
Verfasst am: 21.01.2010 07:37:35 Titel: Die Lösung! |
|
|
sodele, manchmal sieht man vor lauter bäumen den wald nicht ...
problem ist gelöst. und es war - natürlich - einfacher als einfach.
die abfrage wurde nicht mehr auf die kundennummer, sondern auf "getätigte bestellungen" ($orders_total) bezogen.
für alle die es interessiert, hier mein code ab "function referral_input():
function referral_input() {
if (tep_not_null(USE_REFERRAL_SYSTEM)) {
?>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
</tr>
<tr>
<td>
<?php
$orders_total = tep_count_customer_orders();
if ($orders_total > 0) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="mainred"><b><?php echo TABLE_HEADING_WEITEREMPFEHLEN; ?></b></td>
</tr>
</table></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" width="100%" cellspacing="5" cellpadding="2">
<tr>
<td VALIGN="TOP" width="70%%" class="main"><?php echo TEXT_REFERRAL_WEITEREMPFEHLEN; ?></td>
<td width="30%%" align="RIGHT" class="main"><img SRC="../../images/intern/et_50.jpg"><img SRC="../../images/intern/et_50.jpg"><img SRC="../../images/intern/et_50.jpg">
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
} else {
?> <table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="mainred"><b><?php echo TABLE_HEADING_REFERRAL; ?></b></td>
</tr>
</table></td>
</tr>
<tr>
<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
<tr class="infoBoxContents">
<td><table border="0" width="100%" cellspacing="5" cellpadding="2">
<tr>
<td width="80%%" class="main"><?php echo TEXT_REFERRAL_REFERRED; ?></td>
<td width="20%%" align="RIGHT" class="main"><?php echo (tep_draw_input_field('customer_referred', $customer_referred))?>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<?php
}
}
}
?>
natürlich muss man die sprachfiles entsprechend anpassen
bei mir sieht es klasse aus und ich hoffe, dass ich so die/den eine/n oder andere/n dazu bewegen kann, uns weiter zu empfehlen ...
viel erfolg!
georg [img][/img] |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|