Ergebnis 1 bis 7 von 7

Thema: Datensatz ändern - UPDATE

  1. #1
    Azubi(ne)
    Registriert seit
    05.06.2008
    Beiträge
    71
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Datensatz ändern - UPDATE

    Hallo,

    im folgenden findet ihr ein kleines DB Projekt, bestehend aus einem Eingabe-Formular und einer Ausgabe-Tabelle für die Datensätze. Jeder aufgelistete Datensatz verfügt über eine Bearbeitungs- und Lösch-Funktionen. Bei Aufruf des Bearbeitungs-Links wird der bestehenden Datensatz aus der DB ausgelesen und in das Eingabe-Formular eingeschrieben. Im Anschluss können jetzt die Daten manipuliert werden und bei Aufruf von "Prokjekt aktualisieren" wird der Datensatz aktualisiert.
    Das zur Theorie, allerdings habe ich Probleme bei der Umsetzung der Aktualisierungs-Funktion
    PHP-Code:
    function AktualierenProjekt 
    . Bei Aufruf der Funktion steht z.B. das in der Adresszeile:
    meineDB.php?id=5&action=aktualisieren
    . Als Ergebnis erhalte ich dann einen leeren Datensatz z.B. #5.
    Hier zum Code:
    PHP-Code:
    <?php
     
     
    include ("connect.inc.php");
     
    $id    $_POST['id'];
     
    $nummer   $_POST['nummer'];
     
    $name    $_POST['name'];
     
    $gruppe   $_POST['gruppe'];
     
    $text    $_POST['text'];
     
    $bild    $_POST['bild'];
     
    $id $_GET['id']; 
     
    $action $_GET['action']; 
     
     if (
    $action == 'geloescht')
      {
       
    $ErrorMessage LoeschenProjekt$id $dbCon );
      }
     elseif (
    $action == 'bearbeiten')
      {
       
    $row  AbfrageBearbeitenProjekt$id );
       if(
    is_string($row))
      {
       
    $ErrorMessage $row;
      }
     }
     elseif (
    $action == 'aktualisieren')
     {
       
    $ErrorMessage AktualierenProjekt$id$nummer$name$gruppe$text$bild );
       if (
    $ErrorMessage == '')
       {
        
    $ErrorMessage =  "Projekt wurde aktualisiert!";
       }
     }
     else 
      {
       
    $ErrorMessage HinzufuegenProjekt($nummer$name$gruppe$text$bild);
       if (
    $ErrorMessage == '')
       {
        
    $ErrorMessage =  "Projekt hinzugefügt!";
       } 
      }
     
    $result AbfrageProjekt$query$dbCon ); 
     include 
    "EingabeDB-opt-01.html";
     
    //---------------------------------------------------------------------------
    function HinzufuegenProjekt($nummer$name$gruppe$text$bild)
    {
     
    $ErrorMessage CheckEingabe$nummer$name$gruppe$text$bild ); 
     return 
    $ErrorMessage;
    }  
    //---------------------------------------------------------------------------
    function CheckEingabe$nummer$name$gruppe$text$bild )
    {
     if ( 
    $nummer == '' )   
     {
      
    $ErrorMessage "Nummer ... <br />";
     }
     if ( 
    $name == '' )   
     {
      
    $ErrorMessage $ErrorMessage "Name ... <br />";
     }
     if ( 
    $gruppe == '' )   
     {
      
    $ErrorMessage $ErrorMessage "Gruppe ... <br />";
     } 
     if ( 
    $text == '' )   
     {
      
    $ErrorMessage $ErrorMessage "Text ... <br />";
     } 
     if ( 
    $bild == '' )   
     {
      
    $ErrorMessage $ErrorMessage "Bild ... <br />";
     }  
     if (
    $ErrorMessage == ''
     {
      
    $returnValue EintragProjekt$nummer$name$gruppe$text$bild );
      if( 
    $returnValue === TRUE )
      {
       
    $ErrorMessage '';
      }
      else
      {
       
    $ErrorMessage 'Große Probleme: ' $returnValue;
      }
     }
     
     return 
    $ErrorMessage
    }
    //--------------------------------------------------------------------------- 
    function VerbindungDB()
    {
     include (
    "connect.inc.php");
     
     return 
    $dbCon;
    }
    //--------------------------------------------------------------------------- 
    function EintragProjekt$nummer$name$gruppe$text$bild )
    {
     
    $dbCon VerbindungDB();
     
    $insert "INSERT INTO links(nummer, name, gruppe, text, bild)
        VALUES ('
    $nummer', '$name', '$gruppe', '$text', '$bild')";
     
    $bolSuccess mysql_query$insert$dbCon );
     
     if (
    $bolSuccess)
     {
      return 
    $bolSuccess;
     }
     else
     {
      return 
    mysql_error();
     } 
    }
    //--------------------------------------------------------------------------- 
    function AbfrageProjekt$query$dbCon )

     
    $query "SELECT id, nummer, name, gruppe, text, bild FROM links ORDER BY gruppe, nummer";
     
    $result mysql_query$query$dbCon )
      or die (
    "MySQL-Error: " mysql_error() );
     
     return 
    $result;

    //--------------------------------------------------------------------------- 
    function AbfrageBearbeitenProjekt$id )

     
    $dbCon VerbindungDB();
     
     
    $query "SELECT id, nummer, name, gruppe, text, bild FROM links WHERE id=$id";
     
    $result mysql_query$query$dbCon )
      or die (
    "MySQL-Error: " mysql_error() );
     
     
     if (
    $result)
     {
      return 
    mysql_fetch_assoc($result);
     }
     else
     {
      return 
    DBerror();
     }
    }    
    //---------------------------------------------------------------------------
    function LoeschenProjekt$id $dbCon )

     
    $delEntry "DELETE FROM links WHERE id=$id";
        
    $bolSuccess =  mysql_query$delEntry$dbCon );
     
     if (
    $bolSuccess)
     {
      return 
    "Projekt gelöscht";
     }
     else
     {
      return 
    DBerror();
     }
    }
    //---------------------------------------------------------------------------
    function AktualierenProjekt$id$nummer$name$gruppe$text$bild )
    {
     
    $dbCon VerbindungDB();
     
    $updateEntry "UPDATE links 
         SET id='
    $id', nummer='$nummer', name='$name', gruppe='$gruppe', text='$text', bild='$bild'
         WHERE id=
    $id";
     
    $bolSuccess mysql_query$updateEntry$dbCon );
     
     if (
    $bolSuccess)
     {
      return 
    $bolSuccess;
     }
     else
     {
      return 
    mysql_error();
     } 

     
    ?>
    HTML-Code:
    <html>
      <head>
         <title>Projekte</title>
      </head>
      <body>
        <center>
            <h2>Projekte hinzufügen</h2>
        </center>
        <hr>
         <h3>
        <?php
            echo $ErrorMessage; // Will only appear if this html file is used in include statement
        ?>
        </h3>
     
        <form action="meineDB-opt-01.php" method="POST">
            <center>
            <table width="30%" border="0" cellpadding="0" cellspacing="10">
             <tr>
        <td>Projektnummer:</td>
              <td><input type="text" name="nummer" value="<?php echo $row['nummer']; ?>"</td>
             </tr>
       <tr>
              <td>Projektname:</td>
              <td><input type="text" name="name" value="<?php echo $row['name']; ?>"></td>
             </tr>
             <tr>
              <td>Gruppenname:</td>
              <td><select name="gruppe">
                <option value="a">Gruppe a</option>
                <option value="b">Gruppe b</option>
                <option value="c">Gruppe c</option>
     
                </select> <?php echo $row['gruppe']; ?></td>
             </tr>
             <tr>
              <td>Text:</td>
              <td><input type="text" name="text" value="<?php echo $row['text']; ?>"></td>
             </tr>
             <tr>
              <td>Bildpfad:</td>
              <td><input type="text" name="bild" value="<?php echo $row['bild']; ?>"></td>
             </tr>
             <tr>
              <td><input type="submit" name="SubmitButton" value="Projekt hinzufügen"></td>
              <td><input type="reset"></td>
             </tr>
       <tr>
              <td><a href="meineDB-opt-01.php?id=<?php echo $row['id']; ?>&action=aktualisieren">Prokjekt aktualisieren</a></td>
              <td></td>
             </tr>
            </table>
            </center>
        </form>
        <hr>
     
        <center>
            <h2>Meine Projekte</h2>
        </center>
     
     <?php
     
     while($row = mysql_fetch_assoc($result))
     {
     
      echo $row['id']; //Kontrolle
     ?>  
     
        <table align="center" width="80%" border="1" bordercolordark="1"  cellpadding="0" cellspacing="2">
         <tr>
      <td colspan="2" >&Uuml;berschrift:<br> <h1><?php echo $row['name']; ?>////<?php echo $row['nummer']; ?></h1></td>
     </tr>
     <tr>
      <td >Kategorie:<br> <h2><?php echo $row['gruppe']; ?><h2></td>
      <td > <a href="meineDB-opt-01.php?id=<?php echo $row['id']; ?>&action=geloescht">Löschen</a>
        <a href="meineDB-opt-01.php?id=<?php echo $row['id']; ?>&action=bearbeiten">Bearbeiten</a>
     
      </td>
     
         </tr>
         <tr>
          <td>Bild:<br>
       <img src="img/<?php echo $row['bild']; ?>" alt="" border="0" width="100" > 
       </td>
          <td>Textteil:<br><?php echo $row['text']; ?></td>
         </tr>
        </table>
     
     <?php  
     }
     ?>
      </body>
    </html>
    Danke Seb
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Datensatz ändern - UPDATE

    So sehr ich mich auch bemühe, aber ich sehe einfach keine Frage. Was möchtest du wissen, wo ist dein Problem?

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    05.06.2008
    Beiträge
    71
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Datensatz ändern - UPDATE

    Ich versuche das Problem nochmal zu erklären:

    Es gibt ein Problem mit dieser Funktion:
    PHP-Code:
    function AktualierenProjekt$id$nummer$name$gruppe$text$bild 
    Über diesen Link wird die Funktion aufgerufen:
    HTML-Code:
    <a href="meineDB-opt-01.php?id=<?php echo $row['id']; ?>&action=aktualisieren">Prokjekt aktualisieren</a>
    Nach Aufruf des Links wird diese Abfrage vorgenommen:
    PHP-Code:
     elseif ($action == 'aktualisieren')
     {
       
    $ErrorMessage AktualierenProjekt$id$nummer$name$gruppe$text$bild );
       if (
    $ErrorMessage == '')
       {
        
    $ErrorMessage =  "Projekt wurde aktualisiert!";
       }
     } 
    Leider kann ich den Fehler nicht richtig lokalisieren, aber ich denke der Fehler liegt in der oben genannten Funktion.
    Wie bereits gesagt, löscht der Aufruf des Links den bestehenden Datensatzinhalt.
    HTML-Code:
    <a href="meineDB-opt-01.php?id=<?php echo $row['id']; ?>&action=aktualisieren">Prokjekt aktualisieren</a>
    Ich hoffe, ihr könnt jetzt meine Problem besser verstehen.

  4. #4
    Bandit
    Gast

    Standard AW: Datensatz ändern - UPDATE

    Klassischer Fall von

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Und dann solltest du dir den Unterschied zwischen einem Link und einem Button klarmachen.

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    05.06.2008
    Beiträge
    71
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Datensatz ändern - UPDATE

    Hallo Bandit600,

    ich habe das Problem selber lösen können, somit konnte ich Punkt 7 übergehen, . Es lag gar nicht an der update funktion. Der Fehler lag vielmehr bei der übertragung der Formularwerte...mit dem Link werden halt keine Werte übergeben, nur mit einem Submit Button funktionierts.

  6. #6
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Datensatz ändern - UPDATE

    ja klar, wenn du per GET übergibst (-> URL) steht natürlich nichts im _POST-Array.

  7. #7
    Bandit
    Gast

    Standard AW: Datensatz ändern - UPDATE

    Zitat Zitat von sero79 Beitrag anzeigen
    mit dem Link werden halt keine Werte übergeben, nur mit einem Submit Button funktionierts.
    Und genau das hättest du mit "Richtig debuggen" leicht herausfinden können. Einfach das error_reporting hochdrehen und ein paar Variablen ausgeben und schon hätte PHP gemeckert und du hättest sehen können, an welchen Variablen die Sache scheitert! Also bist du nie bis zu Punkt 7 gekommen!!!

Ähnliche Themen

  1. Tabelle mit einem Datensatz
    Von FaFoo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 26.06.2006, 16:09
  2. Datensatz löschen
    Von subseven im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 01.02.2006, 11:50
  3. datensatz aus array filtern
    Von J-T im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 27.01.2006, 21:11
  4. Datensatz in die DB schreiben...
    Von Wais im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 20.12.2005, 18:33
  5. letzten Datensatz ansprechen
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 29.11.2005, 13:54

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •