Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensatz löschen: Seite neu laden?

Einklappen

Neue Werbung 2019

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

  • Datensatz löschen: Seite neu laden?

    Hallo,

    mit dem unten stehenden Code, sollen zuerst einige Datensätze in einer Tabelle ausgegeben werden. Es soll die Möglichkeit geben, Datensätze zu löschen, durch Klicken auf den Link "löschen". Macht der user das, so wird die Variable entrydel auf yes gesetzt und die Seite neu geladen. Beim erneuten Laden wird anfangs abgefragt ob entrydel==yes trifft dies zu, so wird der Code zum Löschen des Datensatzes ausgeführt. Leider passiert beim Klicken auf den Link "Löschen" rein garnichts. Ich glaube dass das Problem daran liegt, dass die Löschroutine nicht einmal aufgerufen wird. Kann mir von euch jemand weiterhelfen?

    Danke, Udo

    Code:
    <?php 
    echo ' 
    <html>  
     
    <head> 
    <title>Admin Area: Avalon Trainingsplan</title>';
    
    $db = mysql_connect("localhost", "root", "xxx"); 
    mysql_select_db("avalon",$db);  
    
    
    //WENN ENTRYDEL=YES DATENSATZ LÖSCHEN
    echo $entrydel;
    // wenn entrydel==yes, dann Datenbankeintrag löschen
    if ($entrydel == 'yes')
    {
    //$loeschen = mysql_query('DELETE FROM training WHERE id='.$_GET['id']);
    $loeschen = mysql_query('DELETE FROM training WHERE id='.$_GET['id']) or die (mysql_error());
    }
    
    
    
    //DATENSÄTZE IN TABELLE AUSGEBEN
    echo '
    <table border=1>
    <tr> '; 
    $abfrage = "SELECT id, day, start, end, description FROM training";
    $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_object($ergebnis))
        {
        echo '<td width="10%">';
        echo $row->day;
        echo '</td>';
        echo '<td width="10%">'; 
        echo $row->start;
        echo '</td>';
        echo '<td width="10%">'; 
        echo $row->end;
        echo '</td>';
        echo '<td width="10%">'; 
        echo $row->description;
        echo '</td>';
        echo '<td width="10%">'; 
        $id = $row->id;
        echo 'loeschen';
    
        echo '</td></tr>';    
        }
    	
    echo '	
    </table>  
    
    ';
     
    echo '</html>';
    ?>
    ====================
    PHP 4.3.4
    Apache 2.0
    Linux SuSE 9.1
    register globals=off


  • #2
    hallo.

    mach mal so:
    Code:
    mysql_query('DELETE FROM training WHERE id='.$_GET['id']) or die (mysql_error());
    und bei hängt das bei der select-abfrage auch an .. das hilft oft fehler zu finden.

    bekommst du denn gar keine fehlermeldung? nichts??
    privater Blog

    Kommentar


    • #3
      Hallo,

      danke für Deine Antwort zu so später Stunde noch

      Hat leider nichts geholfen...ich hab auch nicht mal eine Fehlermeldung bekommen. Ich fürchte ja immernoch, dass er diese Programmstelle garnicht erreicht....

      Danke, Udo

      Kommentar


      • #4
        späte stunde .. die nacht hat ja grad erst angefangen

        mach es so und dann funktioniert es bei mir wunderbar ..
        Code:
        if ($_GET['entrydel'] == 'yes')
        privater Blog

        Kommentar


        • #5
          Zitat von Udo1981
          Ich fürchte ja immernoch, dass er diese Programmstelle garnicht erreicht....
          dann lass dir doch einfach mal
          Code:
          echo "erreicht"
          ausgeben sobald er diese stelle erreicht hat und kommentier die befehler zum löschen dabei aus...und lass dir noch die variable entrydel ausgeben

          Kommentar


          • #6
            @burner.nst:

            Jup...hab ich gemacht - Programmstelle wird nicht erreicht. Aber warum blos?! Dieser Weg mit PHP_SELF müsste doch eigentlich eine Standartlösung für Löschen von Datensätzen bei Verbleiben auf der Seite sein.....?!

            Kommentar


            • #7
              bei mir funktioniert dieser code hier ..
              Code:
              <?php
              
              include 'MySQL.inc.php';
              
              $DB = new MySQL();
              
              
              //$name = $_POST['name'];
              //$pass = $_POST['pass'];
              
              $name = "admin";
              $pass = "avalon";
              
              //BENUTZER ÜBERPRÜFEN
              if ($name != "admin" OR $pass != "avalon")
              {
                echo 'Falscher Benutzername oder falsches Passwort';
                echo '<meta http-equiv="refresh" content="0; URL=folderstrucutre.php">';
                die;
              }
              else
              {
              
              echo '
              <html>
              <head>
              <title>Admin Area: Avalon Trainingsplan</title>';
              
              
              // WENN entrydel==yes, DATENBANKEINTRAG LÖSCHEN
              if ($_GET['entrydel'] == 'yes')
              {
              $loeschen = mysql_query('DELETE FROM unnigb WHERE id='.$_GET['id'], $DB->CONN) or die (mysql_error());
              }
              
              
              
              //TABELLE MIT DATENSÄTZEN AUSGEBEN
              echo '
              <table border=1>
              <tr> ';
              $abfrage = "SELECT * FROM unnigb";
              $ergebnis = mysql_query($abfrage, $DB->CONN) or die (mysql_error());
                while($row = mysql_fetch_object($ergebnis))
                  {
                  echo '<td width="10%">';
                  echo $row->NAME;
                  echo '</td>';
                  echo '<td width="10%">';
                  echo $row->NACHRICHT;
                  echo '</td>';
                  echo '<td width="10%">';
                  $id = $row->ID;
                  echo 'löschen';
              
                  echo '</td></tr>';
                  }
              
              echo '
              </table>
              ';
              
              echo '</html>';
              }
              ?>
              wobei "unnigb" eine testtabelle in einer DB ist ..
              privater Blog

              Kommentar


              • #8
                Hallo Ben,

                ich hab den Code, der bei Dir funktioniert, jetzt auch mal probiert und immerhin bekomm ich jetzt schon eine Fehlermeldung, was ja schonmal ein Fortschritt ist

                Und zwar in der Zeile
                loeschen = mysql_query('DELETE FROM training WHERE id='.$_GET['id'], $DB->CONN) or die (mysql_error());

                die Meldung:
                Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

                ..was ja eigentlich bedeutet, dass die SQL-Syntax nicht stimmt oder keine Datensätze vorhanden sind (glaub eher zweiteres). Könnte mir höchstens vorstellen, dass die ID nicht richtig übergeben wird, in der Browserzeile zeigt es als zu löschende ID die 14 an, die Datensätze haben aber in meiner Datenbank die IDs 1 und 2....?? Aber bei Dir funktionierts ja, oder? Komisch....

                Gruss, Udo

                Kommentar


                • #9
                  Zitat von Udo1981
                  Und zwar in der Zeile
                  loeschen = mysql_query('DELETE FROM training WHERE id='.$_GET['id'], $DB->CONN) or die (mysql_error());

                  die Meldung:
                  Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
                  Kein SQL Fehler. Aber das:
                  Code:
                  $DB->CONN
                  Wie hast Du das Objekt erzeugt?

                  Kommentar


                  • #10
                    @meikel:

                    Das kommt davon wenn man Code von anderen übernimmt und nicht von jedem Teil die Bedeutung kennt - danke jetzt funktionierts!!

                    Kommentar

                    Lädt...
                    X