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

  • Gast-Avatar
    Ein Gast erstellte das Thema Datensatz löschen: Seite neu laden?.

    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

  • Gast-Avatar
    Ein Gast antwortete
    @meikel:

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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    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 ..

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    @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.....?!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    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')

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:


  • imported_Ben
    antwortet
    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??

    Einen Kommentar schreiben:

Lädt...
X