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?
    Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

    Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

  • #2
    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
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      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
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        ok ich danke euch zweien ... aber ganz egal was ich mache ... es löscht keine einträge ...
        Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

        Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

        Comment


        • #5
          .. dann musst du halt .. noch was anderes machen ... meine Glaskugel ist zur Zeit eingefroren ...
          Ich habs gleich!
          ... sagte der Programmierer.

          Comment


          • #6
            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
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              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
              Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

              Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

              Comment


              • #8
                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
                Ich habs gleich!
                ... sagte der Programmierer.

                Comment


                • #9
                  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???
                  Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

                  Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

                  Comment


                  • #10
                    Nein, du hast Beitrag 6 von Falk gelesen, verstanden und umgesetzt?

                    Letzteres wohl nicht, denn eine Fehlerabfrage sehe ich nicht
                    Christian

                    Comment


                    • #11
                      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.
                      Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

                      Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

                      Comment


                      • #12
                        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
                        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                        Comment


                        • #13
                          achso... danke
                          Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

                          Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

                          Comment

                          Working...
                          X