Announcement

Collapse
No announcement yet.

Frage: warum werden einträge nicht gelöscht und ...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage: warum werden einträge nicht gelöscht und ...

    Undzwar habe ich ein script geschrieben mitdem man einträge einfügen kann und auslesen ... jetzt möchte ich erstens, dass die einträge gelöscht werden können und das beim neuladen der seite der letzte eintrag nich nochmal hinzugefügt wird.

    script :
    PHP Code:
    <?php
        
    include_once ("../auth.php");
        include_once (
    "../authconfig.php");
        include_once (
    "../check.php");
        
    $username $check["uname"];

        
        
        if (!(
    $check['team']=='Technik') && !($check['team']=='Subadmin') && !($check['team']=='Admin'))
        {
            echo 
    "<Script>alert('Sie sind für diese Seite nicht befugt! Sie müssen mindestens den Status Technik haben!')</script>";
            echo 
    "<Script>history.back();</script>";
            exit();
        }
    ?>
    <?    
    if(isset($_POST['abort']))
    {
        header("Location: ".BASEHREF."/member/technik.php");
        exit();
    }

    //Beim Absenden des Formulars
    if(isset($_POST['submit']))
    {
     $text  = $_POST['text'];
     $uname = $_POST['uname'];
     $date  = $_POST['date'];
     
      if(!ereg("[a-zA-Z]" ,$text)){
        
               echo "<Script>alert('Bitte überprüfen Sie, ob Ihre Eingabe korrekt ist!')</script>";
            echo "<Script>history.back();</script>";
            exit();
        }
        else{
        $result = mysql_query("INSERT INTO `technik` (uname,text,date) VALUES ('$username','$text','$date')");
     }
    }
    ?>
    <? 
    if(isset($_POST['delete']))
    {
     $sql=("SELECT * from `technik`");
     $id    = $_POST['id'];
     $text  = $_POST['text'];
     $uname = $_POST['uname'];
     $date  = $_POST['date'];
     $result = mysql_query("DELETE * from `technik` BY `id`");
    }
    ?>
    PHP Code:
    <form action="" method="post">
                    <? $result = mysql_query("SELECT * FROM technik ORDER BY id");
                    $row = mysql_fetch_array($result);
                    while ($row) {         
                    print "<tr>"; 
                    print "  <td width=\"20%\">";
                    print "    <div align=\"left\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">";
                    print "        <a href=\"technik.php?act=chat=".$row['uname']."\">";
                    print         $row['uname'];
                    print "        </a>";
                    print "       </font></div>";
                    print "  </td>";
                    print "  <td width=\"25%\">";
                    print "    <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">".$row['text']."</font></div>";
                    print "  </td>";
                    print "</tr>";
                    print "";
                    print "";
                    $row = mysql_fetch_array($result);
                    } ?>
                    <input type="submit" value="  L&ouml;schen  " name="delete" />
                    </form>
                    
                    <link href="<?php echo STYLESHEET_HREF?>" rel="stylesheet" type="text/css" />
    <div class="promem_body">
    <div class="promem_header">Neues Bearbeiten</div>
    <form action="#" method="post">
        <table class="promem_content">
          <tr>
            <td><div class="promem_text">Text:</div></td>
            <td></td>
          </tr>
          <tr>
          <td><textarea cols="100" rows="10" type="text"  name="text"></textarea></td>
          </tr>
        </table>
        <div class="promem_button">
          <input type="submit" value="  Speichern  " name="submit" />
          <input type="submit" value="  Abbrechen  " name="abort" />
        </div>
      </form>
    </div>
    Kann einer das rätsel lösen?

  • chucky
    replied
    achso... danke

    Leave a comment:


  • Falk Prüfer
    replied
    Hallo,

    ich habs zwar schonmal aufgedröselt, aber nun nochmal:
    PHP Code:
    ...
    $result mysql_query("DELETE FROM `technik` WHERE `id` = $id"); 
    ... 
    funktioniert nicht, da in deinem Script nirgendwo die Variable $id mit einem Wert belegt wird. Das SQL-Statement sieht also im Endeffekt immer so aus:
    [highlight=sql]
    DELETE FROM `technik` WHERE `id` =
    [/highlight]
    und das ist eben syntaktisch Falsch!
    Also entweder du übergibst in $id eine gültige (und existente) ID, wenn du einen konkreten DS löschen möchtest oder du läßt die Where-Klausel ganz weg um alle DS zu löschen.

    Gruß Falk

    Leave a comment:


  • chucky
    replied
    PHP Code:
    <?php $result mysql_query("SELECT * FROM `technik` ORDER BY `id`");
                    
    $row mysql_fetch_array($result);
                    while (
    $row) {
                    print 
    "<form method=\"POST\" enctype=\"text/plain\">";
                    print    
    $row['id'];         
                    print 
    "<tr>"
                    print 
    "  <td width=\"20%\">";
                    print 
    "    <div align=\"left\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">";
                    print 
    "        <a href=\"technik.php?act=chat=".$row['uname']."\">";
                    print         
    $row['uname'];
                    print 
    "        </a>";
                    print 
    "       </font></div>";
                    print 
    "  </td>";
                    print 
    "  <td width=\"25%\">";
                    print 
    "    <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">".$row['text']."</font></div>";
                    print 
    "  </td>";
                    print 
    "</tr>";
                    print 
    "<input type=\"submit\" value=\"L&ouml;schen\" name=\"delete\" />";
                    print 
    "</form>";
                    
    $row mysql_fetch_array($result);
                    if (!isset (
    $_POST['delete'])){
                    
    $result mysql_query("DELETE FROM `technik` WHERE `id` = $id");
                    echo 
    mysql_errno() . ": " mysql_error(). "\n";
                    }
                    } 
    ?>
    jetzt hab ich einen syntaxfehler near " in line 1

    line 1:

    PHP Code:
    <?php include_once ("../auth.php");
    include_once (
    "../authconfig.php");
    include_once (
    "../check.php");
    $username $check["uname"];
        
        if (!(
    $check['team']=='Technik') && !($check['team']=='Subadmin') && !($check['team']=='Admin'))
        {
            echo 
    "<Script>alert('Sie sind für diese Seite nicht befugt! Sie müssen mindestens den Status Technik haben!')</script>";
            echo 
    "<Script>history.back();</script>";
            exit();
        }
        
    ?>
    http://www.freundedescarneval.de/downloads.php

    dort ganz unten steht technik.php download!!! dort könnt ihr euch den ganzen quelltext ziehen

    Oder Hier
    Attached Files
    Zuletzt editiert von chucky; 10.02.2010, 02:42.

    Leave a comment:


  • Christian Marquardt
    replied
    Nein, du hast Beitrag 6 von Falk gelesen, verstanden und umgesetzt?

    Letzteres wohl nicht, denn eine Fehlerabfrage sehe ich nicht

    Leave a comment:


  • chucky
    replied
    Ich habe das konkrete Problem, dass einträge die geschrieben und ausgelesen werden (das auch funktioniert) nicht aus der mysql datenbank gelöscht werden können (weil das lösch form null ausliest) das was eingetragen wird ist ein trext ... und je nach möglichkeit heisst, dass ich es am liebsten so hätte, dass man alle ds löschen kann ... und wenn mal ein fehler oder so drinne ist auch nur einen ds löschen kann (datensatz = eintrag) ... nur wenn ich in das form (wo man die ds ausließt)

    PHP Code:
    <? $result = mysql_query("SELECT * FROM technik ORDER BY id"); 
                    $row = mysql_fetch_array($result); 
                    while ($row) {          
                    print "<tr>";  
                    print "  <td width=\"20%\">"; 
                    print "    <div align=\"left\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">"; 
                    print "        <a href=\"technik.php?act=chat=".$row['uname']."\">"; 
                    print         $row['uname']; 
                    print "        </a>"; 
                    print "       </font></div>"; 
                    print "  </td>"; 
                    print "  <td width=\"25%\">"; 
                    print "    <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">".$row['text']."</font></div>"; 
                    print "  </td>"; 
                    print "</tr>"; 
                    print ""; 
                    print ""; 
                    $row = mysql_fetch_array($result); 
                    } ?>
    den button fürs löschen eintrage funktioniert es entweder nicht oder ich bekomme einen fehler ausgegeben ...


    ...

    Konkret genug???

    Leave a comment:


  • tinof
    replied
    Sorry für meinen letzten Post,
    ich kehre zur Sachlichkeit zurück.

    Originally posted by chucky View Post
    alle ds und/oder einzelne ds ... jenach möglichkeit ... wenn ich das ganze aber in das form eintrage wo auselesen wird bekomme ich einden fehler
    Aber, chucky, wie soll man hier helfen?
    • Welcher Fehler?
    • An welcher Stelle?
    • Was heißt 'je nach Möglichkeit'? Wessen Möglichkeit?
    • Was ist "das Ganze", das "in das form wo auselesen wird" eingetragen wird?


    Möchtest du Unterstützung bei einem konkreten Problem, oder nur ein bisschen über Deine Bemühungen bloggen?

    Danke
    Tino

    Leave a comment:


  • chucky
    replied
    alle ds und/oder einzelne ds ... jenach möglichkeit ... wenn ich das ganze aber in das form eintrage wo auselesen wird bekomme ich einden fehler

    Leave a comment:


  • Falk Prüfer
    replied
    Hallo,
    Originally posted by tinof View Post
    ich denke,

    PHP Code:
     $result mysql_query("DELETE * from `technik` BY `id`"); 
    müßte heissen

    PHP Code:
     $result mysql_query("DELETE * from `technik` WHERE id= $id"); 
    Naja, der * hat in einem Delete-Statement auch nichts zu suchen. Syntaktisch richtig wäre:
    PHP Code:
     $result mysql_query("DELETE from technik WHERE id= $id"); 
    Originally posted by chucky View Post
    ... aber ganz egal was ich mache ... es löscht keine einträge ...
    Wie auch!? Mal abgesehen von obigem Syntaxfehler - In deinem "Löschformular" gibt es nur einen Button - delete. in deinem Script liest du jedoch unter "if(isset($_POST['delete'])) " die Werte $_POST['id'], $_POST['text'], $_POST['uname'] und $_POST['date'] aus. Diese Werte gibt es NIE. Dein zusammengebautes Delete-Statement sieht demzufolge IMMER so aus (schonmal syntaktisch bereinigt):
    [highlight=sql]
    DELETE from technik WHERE id=
    [/highlight]
    Das ist natürlich syntaktisch falsch! Es wird also nichts gelöscht, stattdessen nur ein Fehler zurückgegeben. (Den kann man sich übrigens mit mysql_error() zur Fehlersuche anzeigen lassen.)

    Um mal deutlich zu fragen: Du gibst eine LISTE von Datensätzen (DS) aus und hast EINEN Löschbutton. WAS soll denn gelöscht werden, wenn man auf den Button klickt? Der erste DS? Alle DS? Irgendein beliebiger?

    Gruß Falk

    Leave a comment:


  • tinof
    replied
    .. dann musst du halt .. noch was anderes machen ... meine Glaskugel ist zur Zeit eingefroren ...

    Leave a comment:


  • chucky
    replied
    ok ich danke euch zweien ... aber ganz egal was ich mache ... es löscht keine einträge ...

    Leave a comment:


  • Falk Prüfer
    replied
    Originally posted by chucky View Post
    ... und das beim neuladen der seite der letzte eintrag nich nochmal hinzugefügt wird.
    Dies umgeht man im allgemeinen indem nach dem erfolgreichen Abarbeiten des Insert auf eine zweite Seite (per Location-Header) - "Eintrag wurde eingefügt" - weitergeleitet wird. Beim Refresh wird dann nur die "ungefährliche" Erfolgsmeldung neu geladen und nicht das Insert nocheinmal ausgeführt.

    Originally posted by chucky View Post
    ... Kann einer das rätsel lösen?
    Welches Rätsel?

    Gruß Falk

    Leave a comment:


  • tinof
    replied
    Hallo,

    ich denke,

    PHP Code:
     $result mysql_query("DELETE * from `technik` BY `id`"); 
    müßte heissen

    PHP Code:
     $result mysql_query("DELETE * from `technik` WHERE id= $id"); 
    Grüße
    Tino

    Leave a comment:

Working...
X