HILFE!!! Mailscript mit zufallsgenerator. Bitte HELFEN

  • Hallo leute,

    Ich habe eine DB mit z.b. 100 usern drin. Davon sollen z.b. 20 userer gewinnen. Denen die gewonnen haben, die sollen eine e-mail erhalten (inhalt: vorname & emailadresse des users).

    Ich bin soweit gekommen das es funktioniert, aber lediglich nur wenn ich ein user gewinnen lasse. Wenn ich 2 oder mehr gewinnen lasse, dann verschickt er garkeine mail. Es handelt sich um eine while schleife.

    Könnt ihr mir bitte helfen? Hier der quelltext.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Gewinner</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" href="style/style.css" type="text/css">
    </head>
    <?php


    $DatabaseName = "************";
    $DbHostName = "****************";
    $DbUserName = "***************";
    $DbPassWord = "xxxxx";
    mysql_connect("$DbHostName", "$DbUserName", "$DbPassWord");
    mysql_select_db("$DatabaseName");

    ///ZUFALLSGENERATOR STARTEN WENN KLICK ERFOLGT
    if ($generieren )
    {


    /// Datenbank Abfrage welche User teilgenommen haben und noch aktiv sind --> speichern des Ergebnisses in ein array
    function query_into_array($query){
    settype($retval,"array");
    $result= mysql_query($query);
    $y=mysql_num_rows($result);
    $k=mysql_num_fields($result);
    for($i=0;$i<$y;$i++){
    for($j=0;$j<$k;$j++){
    $retval[$i] =
    mysql_result($result,$i,
    mysql_field_name($result,$j));
    }
    }
    return $retval;
    }
    $daten=query_into_array("select vorname from gc_gewinnspiel_eins");

    /// Zufallsgenerator -> Gewinner aus aktiven Teilnehmern ermitteln unter Ausschluss einer Ergebnisdoppelung

    mt_rand((double)microtime()*1000000);

    /* "x" mal Zähler auf Null setzen */
    for ($i=1; $i<=$gewinner; $i++) $cnt[$i]=0;

    /* "x" mal mal ziehen */
    for($i=1; $i<=$gewinner; $i++)
    {
    /* Ziehung "x-1" mal wiederholen, falls Zähler größer Null */
    do
    {
    $z = $daten[mt_rand(0, count($daten)-1)];

    }
    while($cnt[$z]>0);

    /* Zähler erhöhen */
    $cnt[$z] = $cnt[$z]+1;

    /* Einzelnes Ergebnis speichern */
    $name[$i] = $z;
    }
    /// Zufallsgenerator Ergebnis von array in String umwandeln für Datenbankabfrage der Gewinnerdaten
    $namenimplode = implode("','",$name);
    /// String der Gewinner in Datenbankquery implemtntieren

    }
    ?>

    <body bgcolor="#336633" text="#000000" leftmargin="0" topmargin="10" marginwidth="0" marginheight="0">
    <form name="form2" method="post" action="<?php print "$PHP_SELF"; ?>">
    <input type="hidden" name="xlist" value="<?=$namenimplode?>">

    </p>
    <table width="600" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#CCCCCC">

    <tr bgcolor="#FFFFFF">
    <td colspan="4">Gewinnerliste Clubbers Profit Play </td>
    </tr>
    <tr>
    <td width="115">Anzahl Gewinner</td>
    <td colspan="3"><input name="gewinner" type="text" class="inputmembercards" id="gewinner" value="<?php print "$gewinner"; ?>" size="10">
    <input name="generieren" type="submit" class="inputmessagelesen" id="generieren3" value="Gewinner ermitteln">
    <input name="submit" type="submit" id="submit" value="Mail an Gewinner Senden" class="inputmessagelesen"></td>
    </tr>
    <tr bgcolor="#FFFFFF">
    <td colspan="4" valign="top">The Lucky Winners are: </td>
    </tr>
    <tr>
    <td valign="top">Clubber ID:</td>
    <td width="100">Vorname:</td>
    <td>Teilnahme am:</td>
    <td width="200">E-Mail:</td>
    </tr>
    <?

    /// Ausgabe der Gewinner in einer Schleife
    $result = mysql_query("SELECT * FROM gc_gewinnspiel_eins WHERE vorname IN ('$namenimplode') ORDER by nr ASC");
    while($row = mysql_fetch_array($result)) {
    ?>
    <tr bgcolor="#EFEFEF">
    <td><? echo "$row[customerid]"; ?></td>
    <td><? echo "$row[vorname]"; ?></td>
    <td><? echo "$row[eingetragen]"; ?></td>
    <td><? echo "$row[email]"; ?></td>
    <? } ?>
    </tr>
    </table>
    <?
    echo $submit;
    if ($submit) {
    echo "SQL: SELECT * FROM gc_gewinnspiel_eins WHERE vorname IN ('$xlist') ORDER by nr ASC
    ";
    $xresult = mysql_query("SELECT * FROM gc_gewinnspiel_eins WHERE vorname IN ('$xlist') ORDER by nr ASC");
    if(!$xresult){
    echo "Fehler: ".mysql_error()."
    ";
    }
    echo "Results: ".mysql_num_rows($xresult)."
    ";
    while($row = mysql_fetch_array($xresult)) {
    echo "-> Mail an $row[email]\n";
    $header = "From: GERMAN CLUB COMMUNITY <[email='communitydesk@germanclub.de'][/email]>\n";
    $header .= "Reply-To: [email='communitydesk@germanclub.de'][/email]\n";
    $header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
    $header .= "X-Mailer: PHP ". phpversion();
    mail("$row[email]", "DU HAST BEIM GERMAN CLUB COMMUNITY GEWINNSPIEL GEWONNEN","
    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
    \"http://www.w3.org/TR/html4/loose.dtd\">
    <html>
    <head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-15\">
    <title>GERMAN CLUB COMMUNITY - GEWINNER</title>
    </head>

    <body bgcolor=\"#ffffff\" text=\"#000000\" link=\"#009900\" vlink=\"#009900\" alink=\"#009900\" leftmargin=\"0\" topmargin=\"15\" marginwidth=\"0\" marginheight=\"0\">
    <table width=\"80%\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bordercolor=\"#009900\" bgcolor=\"#DCEFCB\">
    <tr bgcolor=\"#009900\">
    <td colspan=\"2\"><font color=\"#FFFFFF\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">G E R M A NC L U BC O M M U N I T Y</font></td>
    </tr>
    <tr bgcolor=\"#FFFFFF\">
    <td colspan=\"2\"></td>
    </tr>
    <tr bgcolor=\"#FFFFFF\">
    <td colspan=\"2\">

    <font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">YOU ARE THE WINNER | $row[email]


    Hallo $row[vorname].

    Herzlichen Glückwunsch. Du bist einer der Gewinner des letzten Freikarten-Gewinnspieles.

    Deine beiden Frei-Tickets sind gültig für \"LOVE POOL - Open Air\" im Georg-Arnhold-Bad Dresden am 17.06.2006.

    Anfahrtsbeschreibung und alle weiteren Infos rund um das Event kannst du unserer Webseite (Menüpunkt Events) entnehmen.

    Drucke dir diese E-Mail aus und bringe sie am 17.06.06 mit.
    Am Einlass, an der Kasse, erhältst du gegen Vorlage dieser E-Mail, plus einer weiteren Person, FREIEN EINTRITT!!!


    Viel Glück und Spaß auch weiterhin in der COMMUNITY.</font></p>
    </td>
    </tr>
    <tr bgcolor=\"#FFFFFF\">
    <td colspan=\"2\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"></font></td>
    </tr>
    <tr bgcolor=\"#FFFFFF\">
    <td colspan=\"2\">

    <font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Cheers

    Deine GERMAN CLUB COMMUNITY</font></p>
    </td>
    </tr>
    </table>
    </body>
    </html>
    ","$header");
    }
    };
    ?>


    </form>

    </body>
    </html>

  • Code
    ///ZUFALLSGENERATOR STARTEN WENN KLICK ERFOLGT
    if ($generieren )
    {


    Wo wird $generieren definiert?
    ...

    Speichere das Script mal mit error_reporting( E_ALL );
    also

    PHP
    ... <?php error_reporting( E_ALL ); ........


    und gib den Link

    Gruss ::RMB::

  • Das hat nix zu sagen. Eins weis ich jetzt schon. Die schleife läuft nur einmal durch. Mir wurde geraten es mit eine for schleife und array zu schreiben. Nur leider bekomm ich das absolut nicht hin.