tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
511
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    danex Tutorials.de Gastzugang
    Hallo,

    ich habe die suchfunktion benutzt, auch ca. gefunden was ich will, aber ich bekomme es einfach nicht hin, neben der Spalte "Datum/Uhrzeit" eine zusätzlich Spalte einzufügen. In dieser Zeile soll ein Link/Button sein, um genau diesen Datensatz zu löschen.
    Bitte helft mir, ich verzweifel schon seit Tagen, bitte helft einem Anfänger weiter =(



    PHP-Code:
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Yard Database</title>
    <style type="text/css">
    <!--
    .style1 {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-weight: normal;
        font-size: 24px;
        {color: #FF6600};
    }
    -->
    body {
        background-color: #CCCCCC;
    }


    .style3 {color: #FF6600}
    .style5 {color: #000000; font-size: 24px; }
    .style6 {
        font-size: 36px;
        color: #FF6600;
    }
    </style>
    </head>
    <body>
    <div align="center">
      <h1 class="style1"><span class="style6">Y</span><span class="style1">ard <span class="style6">D</span>atabase</span> </h1>
      <h1 class="style1">    
      </h1>
    </div>
    </body>
    <hr>
    </html>
    <br>
    <?php
    if (isset($_POST['submit']) && isset($_POST['kfz']) && $_POST['kfz'] != '' ) {
       
         
      try {
        
    $db = new MySQLi('localhost''danex''aischane''yard');
        
    $sql 'INSERT INTO yard (kfz, frachtfr, fahrtnr, wb1, wb2, time) VALUES (?, ?, ?, ?, ?, ?)';
        
    $kommando $db->prepare($sql);
        
    $kommando->bind_param('ssssss'$_POST['kfz'], $_POST['frachtfr'], $_POST['fahrtnr'], $_POST['wb1'], $_POST['wb2'], $datum);
        
    $datum $_POST['date'];
        
    $kommando->execute();
        
    $db->close();
      } catch (
    Exception $e) {
        echo 
    'Fehler: ' htmlspecialchars($e->getMessage());
      }
    }
    ?>

    <style type="text/css">
    <!--
    .style9 {
        font-size: 18px;
        font-weight: normal;
        font-family: Verdana, Arial, Helvetica, sans-serif;
    }
    .style5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: normal; font-size: 16px; }
    -->
    </style>
    </head>

    <body>
    <form method="POST">
      <table width="636" border="1" align="center" cellpadding="0" cellspacing="0">
        <tr bordercolor="#999999" bgcolor="#999999">
          <td height="42" bgcolor="#FF6600"><span class="style9">Kennzeichen:&nbsp;</span></td>
          <td height="42" bgcolor="#FF6600"><input type="text" name="kfz" /></td>
          <td width="89" bgcolor="#FF6600"><span class="style9">Frachtf&uuml;hrer:&nbsp;</span></td>
          <td width="147" bgcolor="#FF6600"><span class="style5">
            <input name="frachtfr" type="text" />
          </span></td>
          <td width="147" rowspan="3" bgcolor="#FF6600">
            
            <div align="center">
              <input name="submit" type="submit" value="Eintragen!"
              font-family:Verdana, Arial, Helvetica, sans-serif;font-weight:bold;font-size: 30px;">

            </div></td>
        </tr>
        <tr bgcolor="#999999">
          <td width="126" height="42"><span class="style5">Brücke 1:&nbsp;</span></td>
          <td width="144"><span class="style5">
            <input type="text" name="wb1" />
          </span></td>
          <td class="style5">Fahrt-Nr.:&nbsp;</td>
          <td><input name="fahrtnr" type="text" /></td>
        </tr>
        <tr bgcolor="#999999">
          <td height="42"><span class="style5">Brücke 2:</span></td>
          <td><input name="wb2" type="text" /></td>
          <td colspan="2">&nbsp;</td>
        </tr>
      </table>
    </form>
    <hr>
    </body>
    </html>


    <table>
    <table width="700" height="100" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgcolor="#999999">
    <tr><th><span class="style5">#</th><th><span class="style5">Kennzeichen</th><th><span class="style5">Frachtf&uuml;hrer</th><th><span class="style5">Fahrten-Nr</th><th><span class="style5">Br&uuml;cke 1</th><th><span class="style5">Br&uuml;cke 2</th><th><span class="style5">Datum/Uhrzeit</th><th><a href='yard.php?del=$ID'Loeschen<a/></th></tr>
    <?php

    try {
        
    $db = new MySQLi('localhost''danex''aischane''yard');
        
    $sql 'SELECT * FROM yard';
        
    $kommando $db->prepare($sql);
        
    $kommando->execute();
        
        
    $kommando->bind_result($id$kfz$frachtfr$fahrtnr$wb1$wb2$time);
        
        while (
    $kommando->fetch()) {
          
    printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
            
    $idhtmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1$wb2$time);
      }
       
        
    $db->close();
      } catch (
    Exception $e) {
        echo 
    'Fehler: ' htmlspecialchars($e->getMessage());
      }

    ?>
    </table>
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Füge einfach eine Spalte ID hinzu, welche die Eigenschaft auto_increment hat und als Primärschlüssel fungiert. Diese Spalte sollte eigentlich bei all deinen Tabellen existieren. Dann kannst du diesen Datensatz wie folgt löschen:
    Code MySQL:
    1
    
    DELETE FROM `yard` WHERE `id` = ?
    An die Stelle von ? muss natürlich die ID des zu löschenden Datensatzes eingesetzt werden.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    danex Tutorials.de Gastzugang
    Hi,

    die Spalte id habe ich schon. Meine Tabelle stellt vor jedem Eintrag die ID davor und zählt sie automatisch aufwärts. Ich möchte quasi das bei jedem neuen Eintrag in die Tabelle, dass automatisch ein button "Löschen" am Ende der Zeile dargestellt wird und diesen Datensatz auch löscht
     

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist gerade online Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Ich drücks mal vorsichtig aus: Automatisch geht mal gar nix Selbst einen Automatismus muss man mal programmieren.

    So nun zu deinem Problem. Erst mal etwas Theorie:

    Ein Button sendet eine Anfrage an den Server auf dem ein Script ausgeführt werden soll. Dieser Button kann ein Form-Button oder ein Link sein auf dem bspw. Löschen steht. Nehmen wir an, es ist ein Link, das macht es etwas einfacher. Der Link lautet also bspw.

    http://www.meinedomain.de/script.php?loeschen=1

    Dann hättest du also ein PHP-Script auf dem Server mit dem Namen script.php. In diesem Script fragst du den übergebenen Parameter "loeschen" ab:

    PHP-Code:
    if( isset($_GET['loeschen']) )    // _GET weil, es ein Parameter an einem Link ist und dieser mit der GET-Methode übertragen wird
    {
      try
      {
          
    $db = new MySQLi('localhost''danex''aischane''yard'); 
          
    $stmt $db->prepare"DELETE FROM yard WHERE id = ?" );
          
    $stmt->bindParam('i'$_GET['loeschen']);
       }
       catch(
    Exception $e)
       {
          echo 
    $e->getMessage();
       }
    }

    /** Weiter unten dann der Aufbau deiner Tabelle mit den Einträgen **/ 
    Die Tabelle muss dann natürlich noch um eine weitere Spalte für den Link erweitert werden. Außerdem musst du die ID in einem <a href.... einbauen.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  5. #5
    danex Tutorials.de Gastzugang
    ok soweit verstanden. Nur am Umsetzten hakt es =) Ich habe ja eine Mysql Ausgabe, dargestellt in eine Tabelle. Wie genau bau ich den Button oder Link da noch mit ein?
    Genau daran scheiter ich die ganze Zeit : "Die Tabelle muss dann natürlich noch um eine weitere Spalte für den Link erweitert werden. Außerdem musst du die ID in einem <a href.... einbauen. "

    Tabelle hab ich erweitert, nur es steht nix drin..
     

  6. #6
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Du musst lediglich diese eine Zeile anpassen, da an dieser Stelle die Zeile ausgegeben wird:
    PHP-Code:
        while ($kommando->fetch()) { 
          
    printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>'
            
    $idhtmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1$wb2$time); 
      } 
    Das könnte dann zum Beispiel so aussehen:
    PHP-Code:
        while ($kommando->fetch()) { 
          
    printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td><a href="?loeschen=%d">loeschen</a></td></tr>'
            
    $idhtmlspecialchars($kfz), htmlspecialchars($frachtfr), htmlspecialchars($fahrtnr), $wb1$wb2$time$id); 
      } 
     
    mfg

    DeluXe

  7. #7
    danex Tutorials.de Gastzugang
    Hi,

    hat super geklappt. Die Tabelle gibt mir jetzt noch eine Spalte mit dem Link löschen aus. Nur ein Problem hab ich noch.. Wenn ich auf den Link lösche klicke bekomme ich folgende MySql-Fehlermeldung :
    Fatal error: Call to undefined method mysqli_stmt::bindParam() in C:\Daniel\php\xampp\htdocs\yard.php on line 109

    Im php Code steht folgendes in Zeile 109:

    PHP-Code:
    $stmt->bindParam('i'$_GET['loeschen']); 
     

  8. #8
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Das bedeutet, dass es die Methode bindParam() im Objekt $stmt nicht gibt.

    Für eine genauere Hilfe, wäre es interessant zu wissen, was $stmt genau ist, sprich um welche Klasse(n) es sich dabei handelt.

    Falls du damit überfragt bist, poste einfach mal die Zeile, in welcher $stmt initialisiert wird, sprich wo $stmt = ... steht.
     
    mfg

    DeluXe

  9. #9
    danex Tutorials.de Gastzugang
    ich hab den code von ein paar post vorher kopiert..

    PHP-Code:
    <?php
    if( isset($_GET['loeschen']) )    // _GET weil, es ein Parameter an einem Link ist und dieser mit der GET-Methode übertragen wird
    {
      try
      {
          
    $db = new MySQLi('localhost''danex''aischane''yard'); 
          
    $stmt $db->prepare"DELETE FROM yard WHERE id = ?" );
          
    $stmt->bindParam('i'$_GET['loeschen']);
       }
       catch(
    Exception $e)
       {
          echo 
    $e->getMessage();
       }
    }
    ?>
     

  10. #10
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Habe ich doch richtig vermutet..

    Es heisst nicht bindParam, sondern bind_param().
    http://de.php.net/manual/en/mysqli-stmt.bind-param.php
     
    mfg

    DeluXe

  11. #11
    danex Tutorials.de Gastzugang
    cool die Fehlermeldung ist tatsächlich weg, aber =) er löscht den Datensatz nicht und gibt auch keine Fehlermeldung aus =(
     

  12. #12
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Auch da hätte dir ein Blick in die Dokumentation weiter helfen können..

    Du musst die Query natürlich auch noch ausführen. Das kannst du mittels der folgenden Zeile tun:
    PHP-Code:
    $stmt->execute(); 
    *edit*
    Ach, jetzt sehe ich erst, dass das ja alles von saftmeister kommt. Habe ich bis eben jedes mal aufs Neue übersehen..
    Geändert von DeluXe (08.01.10 um 23:49 Uhr)
     
    mfg

    DeluXe

  13. #13
    danex Tutorials.de Gastzugang
    Super Support Deluxe!!

    genaue Erklärung und Hilfe... hat alles geklappt.. bis demnächst

    gruß
    Danex
     

Ähnliche Themen

  1. MySQL - Löschen von Daten
    Von AMoKx666 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 10.09.08, 16:51
  2. Problem mit MYSQL Daten löschen
    Von nom im Forum PHP
    Antworten: 3
    Letzter Beitrag: 05.09.07, 12:45
  3. Löschen der Daten in Bereichen mit MySQL
    Von Marta im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 01.06.07, 09:46
  4. Löschen von MySQL Daten
    Von iLu_is_a_loser im Forum PHP
    Antworten: 1
    Letzter Beitrag: 07.04.05, 21:15