Beiträge von o(-_-)o

    Warum durchläuft die schleife das nur einmal?

    [/code]

    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>