PDA

Shop Support News Archive - Shopbetreiber News -> Forum : xt eCommerce Templates Module SEO Support: Templates, Module, Frage: Auswertung Der Geburtstage


voliere.net
09.03.2006, 22:58
gefunden:

Ihr müsst diesen Codeschnipsel:
Code:

<!-- Geburtstage prüfen - ANFANG -----------------------------------------------
realisiert durch TechWay 2004-->



<font face="Verdana" size="2">Geburtstage werden überprüft!!!</font></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="100%" style="border-style: none; border-width: medium" bgcolor="cccccc" colspan="2">
<p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die heute Geburtstag haben:</font></td>
</tr>
<?php

$ergebnis=xtc_db_query("SELECT FROM customers");
$i=0;
while($row = mysql_fetch_object($ergebnis))
{
$gebdat=strtotime($row->customers_dob);
$gebjahr=date('Y',$gebdat); //geburtsjahr z.b. 1980
$gebmonat=date('n',$gebdat); //geburtsmonat z.b. 5
$gebtag=date('j',$gebdat); //geburtstag z.b. 20

if ($gebmonat == date('n') and $gebtag == date('j'))
{ //Kunde hat heute Geburtstag
echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">';
echo $row->customers_firstname . " " . $row->customers_lastname;
echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">';
echo xtc_date_long($row->customers_dob);
echo '</font></td></tr>';
}

if ($gebmonat == date('n') and $gebtag > date('j'))
{ //Kunde hat noch in diesem Monat Geburtstag
//(nur zwischenspeichern und nach der schleife ausgeben)

$geb_bald[$i][0]=$row->customers_firstname;
$geb_bald[$i][1]=$row->customers_lastname;
$geb_bald[$i][2]=$row->customers_dob;
$i++;
}
}
?>



in die Datei admin/start.php nach dieser Zeile:
Code:
<?php include(DIR_WS_MODULES.FILENAME_SECURITY_CHECK); ?>
einfügen...

TechWay
09.03.2006, 23:51
Hallo Leute :lol:

dieses Forum hab ich schon gesucht... ;)

ich habe vor paar Tagen noch eine Sortierung eingebaut!
Hier die geänderte Version:


<!-- Geburtstage prüfen - ANFANG -----------------------------------------------
realisiert durch TechWay 2004-2006-->



<font face="Verdana" size="2">Geburtstage werden überprüft!!!</font></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="100%" id="AutoNumber1">
**<tr>
****<td width="100%" style="border-style: none; border-width: medium" bgcolor="cccccc" colspan="2">
****<p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die heute Geburtstag haben:</font></td>
**</tr>
<?php
$ergebnis=xtc_db_query("SELECT FROM customers ORDER BY customers_dob");
$i=0;
while($row = mysql_fetch_object($ergebnis))
****{
********$gebdat=strtotime($row->customers_dob);
********$gebjahr=date('Y',$gebdat);** //geburtsjahr z.b. 1980
********$gebmonat=date('n',$gebdat);** //geburtsmonat z.b. 5
********$gebtag=date('j',$gebdat);** //geburtstag** z.b. 20

********if ($gebmonat == date('n') and $gebtag == date('j'))
********{** //Kunde hat heute Geburtstag
************echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">';
************echo $row->customers_firstname . " " . $row->customers_lastname;
************echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">';
************echo xtc_date_long($row->customers_dob);
************echo '</font></td></tr>';
********}

********if ($gebmonat == date('n') and $gebtag > date('j'))
********{****//Kunde hat noch in diesem Monat Geburtstag
************//(nur zwischenspeichern und nach der schleife ausgeben)

************$geb_bald[$i][0]=$row->customers_firstname;
************$geb_bald[$i][1]=$row->customers_lastname;
************$geb_bald[$i][2]=$row->customers_dob;
************$i++;
********}
****}
?>
<tr>
****<td width="100%" style="border-style: none; border-width: medium" colspan="2"></td>
**</tr>
**<tr>
****<td width="100%" style="border-style: none; border-width: medium" colspan="2" bgcolor="#CCCCCC">
****<p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die noch in diesem Monat Geburtstag haben:</font></td>
**</tr>
<?php
****//Array sortieren
****// BSP: ****1988-03-15 00:00:00
//****zunächst ein Array bilden welcher nur die Tage beinhaltet:
****$anzahl = count($geb_bald);
****for($i=0; $i<$anzahl; $i++) {
********$geb_bald_sort[$i][0] = $geb_bald[$i][0];
********$geb_bald_sort[$i][1] = $geb_bald[$i][1];
********$geb_bald_sort[$i][2] = substr($geb_bald[$i][2],8,2);
****}
****array_qsort($geb_bald_sort, 2);****//nach Tagen sortieren
****// nun die Reihenfolge in den Array übernehmen
****for($i=0;$i<$anzahl;$i++) {
********for($a=0;$a<$anzahl;$a++) {
************if (($geb_bald_sort[$i][0] == $geb_bald[$a][0]) && ($geb_bald_sort[$i][1] == $geb_bald[$a][1]))
****************break;
********}
********$geb_bald_sort[$i][2] = $geb_bald[$a][2];
****}
// nun die Liste ausgeben
**** for($i=0; $i<$anzahl; $i++) {
**** ****echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">';
********echo $geb_bald_sort[$i][0] . ' ' . $geb_bald_sort[$i][1];
********echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">';
********echo xtc_date_long($geb_bald_sort[$i][2]);
********echo '</font></td></tr>';
**** }
**** echo '</table>
';
**** unset($geb_bald);
**** ?>



Ihr müsst außerdem noch diese Funktion gleich am anfang der start.php nach den require einfügen:


**function array_qsort (&$array, $column=0, $order=SORT_ASC, $first=0, $last= -2)
****{
******// $array**- the array to be sorted
******// $column - index (column) on which to sort
******//**********can be a string if using an associative array
******// $order**- SORT_ASC (default) for ascending or SORT_DESC for descending
******// $first**- start index (row) for partial array sort
******// $last**- stop**index (row) for partial array sort
******// $keys**- array of key values for hash array sort
****
******$keys = array_keys($array);
******if($last == -2) $last = count($array) - 1;
******if($last > $first) {
****** $alpha = $first;
****** $omega = $last;
****** $key_alpha = $keys[$alpha];
****** $key_omega = $keys[$omega];
****** $guess = $array[$key_alpha][$column];
****** while($omega >= $alpha) {
******** if($order == SORT_ASC) {
********** while($array[$key_alpha][$column] < $guess) {$alpha++; $key_alpha = $keys[$alpha]; }
********** while($array[$key_omega][$column] > $guess) {$omega--; $key_omega = $keys[$omega]; }
******** } else {
********** while($array[$key_alpha][$column] > $guess) {$alpha++; $key_alpha = $keys[$alpha]; }
********** while($array[$key_omega][$column] < $guess) {$omega--; $key_omega = $keys[$omega]; }
******** }
******** if($alpha > $omega) break;
******** $temporary = $array[$key_alpha];
******** $array[$key_alpha] = $array[$key_omega]; $alpha++;
******** $key_alpha = $keys[$alpha];
******** $array[$key_omega] = $temporary; $omega--;
******** $key_omega = $keys[$omega];
****** }
****** array_qsort ($array, $column, $order, $first, $omega);
****** array_qsort ($array, $column, $order, $alpha, $last);
******}
****}



Viele Grüße
TechWay

compystyle
09.03.2006, 23:53
nettes feature :) danke schön!

Barcelo
02.06.2006, 00:44
Vielen Dank an TechWay für dieses tolle Modul !!! :P

Frage bzw. Verbesserungsvorschlag:

Im Block:
//Kunde hat heute Geburtstag
eine Verlinkung zur Datei gv_mail.php (Gutschein eMail) und so, daß die
Form-Felder schon gleich mit gewünschten Parametern eingetragen werden.

Das wäre eine echt feine Sache - auf den Namen klicken und ab damit... :)

Was denkt Ihr?

VG, Oliver

Cindy
02.06.2006, 01:59
Hallo TechWay,

erstmal vielen Dank. Ist wirklich ein tolles Tool.

Wenn bei mir aber keiner in dem jetzigen Monat Geburtstag hat, kommt bei mir diese Fehlermeldung:

''>ZITAT</div>Warning: array_keys(): The first argument should be an array in /var/www/vhosts/ba1000.de/httpdocs/admin/start.php on line 32[/b]

Und Linie 32 ist bei mir:

''>ZITAT</div> $keys = array_keys($array);[/b]

Ist das irgendwie von Belang oder kann man da drüber hinwegsehen? Also ich mein ob das irgendwelche Auswirkungen hat auf die Berechnung.

TechWay
02.06.2006, 10:38
Hallo,

Es liegt daran, dass keine Geburtstage an diesem Tag sind und somit das array leer ist und nichts sortiert werden kann.

Also einfach vor die Zeile:
**array_qsort($geb_bald_sort, 2);****//nach Tagen sortieren

folgendes einfügen:
if ($anzahl > 0)

Hier nochmal der kompletter Code:

<!-- Geburtstage prüfen - ANFANG -----------------------------------------------
realisiert durch TechWay 2004-2006-->



<font face="Verdana" size="2">Geburtstage werden überprüft!!!</font></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="100%" id="AutoNumber1">
**<tr>
****<td width="100%" style="border-style: none; border-width: medium" bgcolor="cccccc" colspan="2">
****<p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die heute Geburtstag haben:</font></td>
**</tr>
<?php
$ergebnis=xtc_db_query("SELECT FROM customers ORDER BY customers_dob");
$i=0;
while($row = mysql_fetch_object($ergebnis))
****{
********$gebdat=strtotime($row->customers_dob);
********$gebjahr=date('Y',$gebdat);** //geburtsjahr z.b. 1980
********$gebmonat=date('n',$gebdat);** //geburtsmonat z.b. 5
********$gebtag=date('j',$gebdat);** //geburtstag** z.b. 20

********if ($gebmonat == date('n') and $gebtag == date('j'))
********{** //Kunde hat heute Geburtstag
************echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">';
************echo $row->customers_firstname . " " . $row->customers_lastname;
************echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">';
************echo xtc_date_long($row->customers_dob);
************echo '</font></td></tr>';
********}

********if ($gebmonat == date('n') and $gebtag > date('j'))
********{****//Kunde hat noch in diesem Monat Geburtstag
************//(nur zwischenspeichern und nach der schleife ausgeben)

************$geb_bald[$i][0]=$row->customers_firstname;
************$geb_bald[$i][1]=$row->customers_lastname;
************$geb_bald[$i][2]=$row->customers_dob;
************$i++;
********}
****}
?>
<tr>
****<td width="100%" style="border-style: none; border-width: medium" colspan="2"></td>
**</tr>
**<tr>
****<td width="100%" style="border-style: none; border-width: medium" colspan="2" bgcolor="#CCCCCC">
****<p style="margin-left: 5"><font face="Verdana" size="2">Kunden, die noch in diesem Monat Geburtstag haben:</font></td>
**</tr>
<?php
****//Array sortieren
****// BSP: ****1988-03-15 00:00:00
//****zunächst ein Array bilden welcher nur die Tage beinhaltet:
****$anzahl = count($geb_bald);
****for($i=0; $i<$anzahl; $i++) {
********$geb_bald_sort[$i][0] = $geb_bald[$i][0];
********$geb_bald_sort[$i][1] = $geb_bald[$i][1];
********$geb_bald_sort[$i][2] = substr($geb_bald[$i][2],8,2);
****}
****if ($anzahl > 0)
********array_qsort($geb_bald_sort, 2);****//nach Tagen sortieren
****// nun die Reihenfolge in den Array übernehmen
****for($i=0;$i<$anzahl;$i++) {
********for($a=0;$a<$anzahl;$a++) {
************if (($geb_bald_sort[$i][0] == $geb_bald[$a][0]) && ($geb_bald_sort[$i][1] == $geb_bald[$a][1]))
****************break;
********}
********$geb_bald_sort[$i][2] = $geb_bald[$a][2];
****}
// nun die Liste ausgeben
**** for($i=0; $i<$anzahl; $i++) {
**** ****echo '<tr><td width="35%" style="border-style: none; border-width: medium"><p style="margin-left: 5"><font face="Verdana" size="2">';
********echo $geb_bald_sort[$i][0] . ' ' . $geb_bald_sort[$i][1];
********echo '</font></td><td width="65%" style="border-style: none; border-width: medium"><font face="Verdana" size="2">';
********echo xtc_date_long($geb_bald_sort[$i][2]);
********echo '</font></td></tr>';
**** }
**** echo '</table>
';
**** unset($geb_bald);
**** ?>



dass mit gv_mail schaue ich mir heute Abend mal an ;-)
EDIT: Was wäre den besser? eine Gutschein-Mail oder Kupon-Mail? ich denke dass Kupons öfters verwendet werden???

Viele Grüße
Steffen

xilef
02.06.2006, 14:46
Hallo,

was ich interessant finde würde. Das am Geburstatg an den jeweiligen Kunden automatisch eine Email verschickt wird. In der zum Geburtstag gratuliert wird etc. pp. Das Übliche halt. Folglich wäre das auch ein weiterer Schritt zur Kundenbindung.

Gast
02.06.2006, 14:56
Ja das mit einer automatisch generierten Mail via Klick auf den Kunden wäre natürlich
noch einfacher. So weit wollte ich jedoch noch nicht denken - ist die Frage wie zeitaufwendig
das zu programmieren ist.
''>ZITAT</div>Folglich wäre das auch ein weiterer Schritt zur Kundenbindung.[/b]
Absolut - und eine sehr gute und nette Erinnerung mal wieder vorbei zu sehen... ;)

Cindy
02.06.2006, 15:17
Hallo TechWay,

vielen Dank. Fehlermeldung is weg :)

green_eye55
04.06.2006, 12:12
hallo,

ich habe gerade dieses hübsche modul einbauen wollen, doch erhalte ich folgende fehlermeldung:

Parse error: parse error, unexpected T_STRING, expecting '{' in /var/www/web31/html/303/admin/start.php on line 21


woran kann das liegen?
vielen dank.

daveland
04.06.2006, 16:09
Hi Steffen!

Hab eine Frage:
Dieses Geburtstagsmodul klebt so rnichtig auf der rechten Seite, wie kann ich es anstellen,
das ich es nach links bekomme (direkt neben die Admin-Module)?


Haut übrigens super hin das Teil!!

Barcelo
05.06.2006, 15:44
''>ZITAT(daveland @ Jun 4 2006, 16:09) 5759
Hab eine Frage:
Dieses Geburtstagsmodul klebt so rnichtig auf der rechten Seite, wie kann ich es anstellen,
das ich es nach links bekomme (direkt neben die Admin-Module)?
[/b]

setze es direkt unterhalb der Zeile:
<?php include(DIR_WS_MODULES.FILENAME_SECURITY_CHECK); ?>
Es sollte auf jeden Fall linksbündig sein - ansonsten mit dem html-Tag linksbündig ausrnichten.

VG, Oliver

Yel Nats
22.08.2006, 08:09
''>ZITAT(xilef @ Jun 2 2006, 14:46) 5699
Hallo,

was ich interessant finde würde. Das am Geburstatg an den jeweiligen Kunden automatisch eine Email verschickt wird. In der zum Geburtstag gratuliert wird etc. pp. Das Übliche halt. Folglich wäre das auch ein weiterer Schritt zur Kundenbindung.
[/b]

Hat jemand geschafft das zu realisieren? Daran hätte ich nämlich auch interesse!
Danke!

Yel Nats

danillo
22.08.2006, 09:17
''>ZITAT(Yel Nats @ Aug 22 2006, 8:09) 9368
Hat jemand geschafft das zu realisieren? Daran hätte ich nämlich auch interesse!
Danke!

Yel Nats
[/b]

Dafür bräuchte man dann ja einen Cronjob auf dem Server.

xilef
22.08.2006, 12:19
''>ZITAT(danillo @ Aug 22 2006, 9:17) 9372
Dafür bräuchte man dann ja einen Cronjob auf dem Server.
[/b]

Und wo liegt das Problem?

dazze
22.08.2006, 12:25
Sicher darin das nicht jeder einen Rootserver hat bzw Webspace bei einem Provider der keine cronjobs anbietet.

Aber ich kenne einige "Cronjob"-Anbieter, waren meines Erachtens sogar gratis. Man kann sich dort anmelden und cronjobs einrnichten die dann zu den angegebenen Zeiten die angegebene URL aufrufen.

Einfach mal nach googlen.

Grüsse

dazze

Mythbuster
16.09.2006, 11:01
Hallo Techway

Ist auch schon länger her, dass ich dieses Thema hier aufgenommen habe. Wie bereits vor einem halben Jahr beschrieben, prüfe ich noch immer täglich die Geburtstage und sende den Kunden dann manuelle Grüsse plus einen Geburtstagsgutschein. Leider erhalten Kunden wärend meiner Ferienabwesenheit keinen Gutschein. Dies hat vor einigen Monat sogar etwas unmut erzeugt, da sich zwei Kunden gekannt haben und der eine einen Gutschein erhielt und der andere nicht. Eine Automatisierung wäre daher echt genial!

Wie ich sehe ist zu diesem Thema ja auch schon diverses geschrieben worden. Da Du damals mal erwähnt hast, dass du sowas programmieren wirst, frage ich mal nochmals zurück.

Ist da schon was gewachsen ;)

Beste Grüsse
Mythbuster

mimk97
20.10.2006, 14:38
hat nun schon jemand den automatischen kuponversand programmiert?
ich setze das Techway Script nun auch bereits seit 1 Monat ein, und wäre begeistert wenn der Versand automatisch gehen würde :)

eine möglichkeit für nen cronjob hätte ich schon ;)

TechWay
20.10.2006, 23:42
Hallo,

ich hatte leider noch keine Zeit daran weiter zu proggen. :wacko:

Gruß
TechWay

Yel Nats
21.10.2006, 09:23
schaaade!

TS-Internet
23.10.2006, 10:02
Das wäre ja ein Super Tool wenn es geben würde. Wäre sehr daran interessiert.

Gruß

Serkan

Buggyboy
23.10.2006, 11:59
Hallo!

Mal eine Frage zu dem Geburtstagshack:

Kann man das auch so in die whois_online.php einsetzten?
Habe nämlich die Startseite eben als whois_online.php eingesetzt.

Vielen Dank...
Peter

DayWalker
12.01.2007, 22:57
hallo,

ich habe hier ein anderes Geburtstagsmodul... viellenicht ist das ja was.

[attachmentid=851]

DayWalker
13.01.2007, 16:26
viellenicht kann ja jemand einen cron-Job rein programmieren.

bihe
18.01.2007, 16:02
hallo

in welche Datei muß denn der erste Codeschnipsel?

Gruß

Birgit

Mythbuster
29.01.2007, 19:21
Hallo zusammen

Es ist ja seit über einem Jahr ein immer wiederkehrendes Thema. Das Geburtstags Modul... Ich habe dasjenige von Techway noch immer in Betrieb und finde es, bis auf die fehlende Funktion, automatisch Gutscheine versenden zu können, sehr gut. Da meine Kundendatenbank sehr angewachsen ist, muss ich mittlerweile jeden Tag bis zu einer Stunde einplanen, um allen Kunden am jeweiligen Tag zu gratulieren und einen zeitlich begrenzten Rabatt Coupon zuzustellen. Ich träumte ja schon von über einem Jahr von einem automatischen Modul.

Da ich schon lange nicht mehr hier war, nun die Frage. Hat bereits jemand ein solches in die Tat umgesetzt? Ich wäre ein begeisterter Abnehmer :-)

Liebe Grüsse
Mythbuster

DayWalker
29.01.2007, 22:54
hallo,

also einen automatischen crontab habe ich jetzt programmiert, der verschickt aber nur einen text und keinen gutschein.

Mythbuster
30.01.2007, 01:22
Na das wäre doch immerhin mal ein Anfang. Würdest du mir das Modul zur Verfügung stellen?

Gruss
Mythbuster