Löschen in WHILE Schleife

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Löschen in WHILE Schleife

    hallo,

    hab ein kleines problem mit ner löschfunktion in ner while schleife

    das problem:
    es handelt sich um einen postausgang, dort werden alle mails
    aufgelistet und man hat die möglichkeit mit einer checkbox die mail
    zu makieren. wenn makiert, dann soll gelscht werden mit nem
    button.

    soweit so gut und funktioniert auch, nur wenn jetzt ne mail die
    ungelesen ist und vor eine zulöschenden mail mit dem status
    gelesen ist dann löscht er die makierten nicht und ich blick nicht
    durch warum.

    vielleicht kann mir ja jemand auf die sprünge helfen oder mir sagen
    ob es hier im forum schon ein threat gibt. ich weiß einfach nicht
    was ich in die suche eingeben soll.

    hier das script:


    PHP-Code:
    if(isset($_POST["delmailout"])) {$uploadneed count($_POST)-2;
    for(
    $x=1;$x<=$uploadneed;$x++){ 
    mysql_query("DELETE FROM ts_mailout WHERE
    id='"
    .$_POST["com_$x"]."'");
    linkindex("index.php?site=messenger&action=out");
     }} 
    <form method="post" name="messages">
    <table width="100%" cellpadding="3" cellspacing="1" border="0"
    style="background-color: #000000;">
    <tr>
    <td colspan="5" bgcolor="#E8E8E8"><b>Postausgang</b></td>
    </tr>
    <tr>
    <td style="background-color: #9000C4; color: #FFFFFF;
    font-weight: bold; width: 20px;"></td>
    <td style="background-color: #9000C4; color: #FFFFFF;
    font-weight: bold; width: 20px;"></td>
    <td style="background-color: #9000C4; color: #FFFFFF;
    font-weight: bold;">An:</td>
    <td style="background-color: #9000C4; color: #FFFFFF;
    font-weight: bold;">Betreff:</td>
    <td style="background-color: #9000C4; color: #FFFFFF;
    font-weight: bold; width: 125px;">Datum</td>
    </tr>
    PHP-Code:
    $msgout_sql mysql_query("SELECT * FROM ts_mailout 
    WHERE an ='
    $_SESSION[userid]' ORDER BY id DESC"); 
    $msgname =mysql_query("SELECT username FROM users WHERE id = $msgout'[von]'");
    $msgan mysql_fetch_array($msgname);
    $ix=1
    while(
    $msgout mysql_fetch_array($msgout_sql)){ $exp1 
    explode(" "$msgout[datum]); 
    $dat explode("-"$exp1[0]);  
    $timestamp  $msgout[datum]; 
    $betreffdate date("d.m.Y|H:i:s",$timestamp ); 
    <tr>
    <td bgcolor="#E8E8E8"><input type="checkbox" value="
    <? echo $msgout[id] ?>" name="com_<? echo $ix ?>"></td>
    <td bgcolor="#E8E8E8">
    <? if($msgout[status] == "noch nicht gelesen") {?><img src="../../images/ungelesen.gif" border="0">
    <?}else{?>
    <img src="../../images/gelesen.gif" border="0"><?}?></td>
    <td bgcolor="#E8E8E8">
    <?php echo useron($msgout[von]); ?>
    </td>
    <td bgcolor="#E8E8E8">
    <a href="index.php?site=messenger&action=read2&msgid=
    <?php echo $msgout[id]; ?>">
    <?php if($msgout[betreff] == "") { echo "Kein Betreff"; }
    else { echo $msgout[betreff]; } ?></a></td>
    <td bgcolor="#E8E8E8">
    <?php echo $betreffdate; ?>
    </td></tr>

    PHP-Code:
    $ix++; } 
    </table>
    <br>
    <table width="100%" cellpadding="3" cellspacing="2" border="0"
    style="background-color: #E8E8E8; border: #000000 1px solid;">
    <tr><td>
    <tr><td width="160">
    <a href="javascript:selectall()">Alle markieren</a> |
    <a href="javascript:deselectall()">Aufheben</a><br>
    <input type="hidden" name="ref" value="">
    <input type="submit" name="delmailout" value="Markierte löschen">
    </td>
    <td width="90">
    <div style="float: left;"><img src="../../images/ungelesen.gif"
    border="0"><br />
    <img src="../../images/gelesen.gif" border="0" style="margin-top: 3px;"></div>
    <div style="float: left; margin-left: 6px; margin-top: 2px;
    line-height: 15px;">Ungelesen<br />Gelesen</div>
    </td>
    <td>Ausgang</td>
    </tr></table></form>

    PHP-Code:
    break; 
    case
    'delete'mysql_query("DELETE FROM ts_mailout
     WHERE id = 
    $GETID LIMIT 1"); 
    header("LOCATION: index.php?site=messenger&action=out");
    break; 
    vielen dank
    Zuletzt geändert von lukeacid; 08.02.2009, 12:23.

  • #2
    Ehm... du möchtest deinen PHP-Code mal mit Zeilenumbrüchen versehen hab ich gehört?! O_O

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Original geschrieben von ghostgambler
      Ehm... du möchtest deinen PHP-Code mal mit Zeilenumbrüchen versehen hab ich gehört?! O_O
      so besser oder was meinst du?

      Kommentar


      • #4
        Hallo,

        wenn ich das richtig sehe zählst du die anzahl der POST Variablen
        und gehst dann das ganze mit ner forschleife durch und löschst die nachrichten, das kann nicht funktionieren.
        du löschst dann immer id 1 bis max Anzahl der im Post array enthaltenen Elemente.


        mach dich mal schlau wie man mit checkboxen umgeht

        http://tut.php-quake.net/de/post.html#s6


        vg
        gourmet

        Kommentar


        • #5
          ich hab das script nicht geschrieben und kenn mich leider auch nicht mit for schleifen aus und
          was soll ich mir auf deiner seite ansehen, damit ich mein problem kapiere?
          weil da werden die checkboxen doch schon so geschrieben und nicht aus ner datenbank geholt.

          hilfe ich bin grad recht verwirrt )

          Kommentar

          Lädt...
          X