• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formularwerte in Datenbank eintragen + sonstige Php-Fragen.

  • Ersteller Ersteller Tobias
  • Erstellt am Erstellt am
nachdem du die verbindung zur datenbank aufgebaut hast, also fast ganz an den anfang:

PHP:
include 'connect.php';
if (isset($_GET["id"]) && is_numeric($_GET["id"])) {
  $loeschen = "DELETE FROM dabeiscript WHERE id= '" . $_GET["id"] . "'";
  mysql_query($loeschen) OR die (mysql_error()); //mysql_error immer verwenden
} 

//... weiter im code

der löschlink sollte dann aber auch auf die delete.php verweisen, damit diese aufgerufen wird. nachdem löschen werden deine einträge wieder neu ausgelesen, und da der gewählte eintrag gelöscht wurde, wird dieser nicht mehr angezeigt werden.
 
direkt nachdem du die verbindung zur datenbank aufgebaut hast:

PHP:
include 'connect.php';
if (isset($_GET["id"]) && is_numeric($_GET["id"])) {
  $loeschen = "DELETE FROM dabeiscript WHERE id= '" . $_GET["id"] . "'"; 
  mysql_query($loeschen) OR die (mysql_error()); //mysql_error() immer verwenden
}

//... weiter im Code

dann sollte der link aber auch auf die delete.php verweisen. nach dem klicken auf den link wird dann der eintrag mit der entsprechenden ID gelöscht. danach liest du ja wie gewohnt die einträge aus. da der eintrag kurz zuvor gelöscht wurde, wird dieser nicht mehr angezeigt werden.


EDIT: sch**** @mods, bitte doppelpost löschen ;) war keine absicht
 
Hey danke für deine weiteren Antworten.
Kommen der Sache immer näher. ;)

Also habe dein Codevorschlag verwendet und er zeigt mir keine Fehler an.
Doch wenn ich nun auf den Löschlink klicke, lädt da kurz was und das wars denn schon. Ansonsten passiert nichts.
Der Eintrag wird auch nicht gelöscht.

PHP:
<?php
include ('connect.php'); // Verbindung zur MySQL-Datenkbank
if (isset($_GET["id"]) && is_numeric($_GET["id"])) {
  $loeschen = "DELETE FROM dabeiscript WHERE id= '" . $_GET["id"] . "'";
  mysql_query($loeschen) OR die (mysql_error()); //mysql_error immer verwenden
} 
$result = mysql_query("    SELECT
                            Autor,
                               Prozentualdabei,
                            Kommentar               
                           FROM
                            dabeiscript") 
                                
OR die(mysql_error());
            //"Header" von der Eintrag-Anzeige
            echo     "<table width=\"100%\" border=\"1\">";
            echo    "<tr>";
             echo    "<th width=\"17%\" scope=\"col\">Name:</th>";
             echo    "<th width=\"5%\" scope=\"col\">%</th>";
             echo    "<th width=\"58%\" scope=\"col\">Kommentar:</th>";
             echo    "<th width=\"20%%\" scope=\"col\">Loeschen:</th>";
            echo    "</tr>";
if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
        
        
            //Im Formular kann kein Html verwendet werden...
            $row['Autor'] = htmlentities($row['Autor']);
            $row['Prozentualdabei'] = htmlentities($row['Prozentualdabei']);
            $row['Kommentar'] = htmlentities($row['Kommentar']);

            
            //Einträge werden hier angezeigt....
            echo     "<tr>";
            echo    "<td>".$row['Autor']."</td>";
             echo    "<td>".$row['Prozentualdabei']."</td>";
             echo    "<td>".nl2br($row['Kommentar'])."</td>";
            echo    "<td>";        
     echo "<a href=\"" . $_SERVER["PHP_SELF"] . "?id=" . $id . "\"> Löschen </a>";
             echo    "</td>";
             echo    "</tr>";
            
            
        }}
            //Footer vom Eintrag-Anzeige
            echo     "</table>";
 
 

?>
 
PHP:
echo "<a href=\"" . $_SERVER["PHP_SELF"] . "?id=" . $id . "\"> Löschen </a>";

woher holst du denn $id? ich sehe nicht wo sie gefüllt wird. sie muss die id des eintrags haben. hast du überhaupt schon eine spalte für die ids angelegt?

du musst natürlich beim auslesen der einträge dann die id mit auslesen und dann $id = $row["id"]; //wenn id der spaltenname ist natürlich

erst dann kann das ja funktionieren. $_GET["id"] wird wohl aktuell leer sein
 
Ja eigentlich habe ich ne Spalte ID!

Aber der zeigt mir ja noch nichtmal die ID's an...

PHP:
<?php
include ('connect.php'); // Verbindung zur MySQL-Datenkbank
if (isset($_GET["id"]) && is_numeric($_GET["id"])) {
  $loeschen = "DELETE FROM dabeiscript WHERE id= '" . $_GET["id"] . "'";
  mysql_query($loeschen) OR die (mysql_error()); //mysql_error immer verwenden
} 
$result = mysql_query("    SELECT
                            ID,
                            Autor,
                               Prozentualdabei,
                            Kommentar               
                           FROM
                            dabeiscript") 
 
OR die(mysql_error());
            //"Header" von der Eintrag-Anzeige
            echo     "<table width=\"100%\" border=\"1\">";
            echo    "<tr>";
             echo    "<th width=\"17%\" scope=\"col\">Name:</th>";
             echo    "<th width=\"5%\" scope=\"col\">%</th>";
             echo    "<th width=\"58%\" scope=\"col\">Kommentar:</th>";
             echo    "<th width=\"20%%\" scope=\"col\">Loeschen:</th>";
            echo    "</tr>";
if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
 
 
            //Im Formular kann kein Html verwendet werden...
            $row['Autor'] = htmlentities($row['Autor']);
            $row['Prozentualdabei'] = htmlentities($row['Prozentualdabei']);
            $row['Kommentar'] = htmlentities($row['Kommentar']);
 
            //Einträge werden hier angezeigt....
            echo     "<tr>";
            echo    "<td>".$row['Autor']."</td>";
             echo    "<td>".$row['Prozentualdabei']."</td>";
             echo    "<td>".nl2br($row['Kommentar'])."</td>";
            echo    "<td>";   
             echo    "<b>".$row['id']."</b>";
     echo "<a href=\"" . $_SERVER["PHP_SELF"] . "?id=" . $id . "\"> Löschen </a>";
             echo    "</td>";
             echo    "</tr>";
 
 
        }}
            //Footer vom Eintrag-Anzeige
            echo     "</table>";
 
?>
 
PHP:
echo $row["ID"];
denke ich, sollte es heißen

EDIT: error_reporting(E_ALL); ganz am anfang der datei hilft bei sowas eigentlich immer. er wird dir dann sagen das $row keinen index hat der "id" lautet
 
PHP:
echo $row["ID"];
denke ich, sollte es heißen

EDIT: error_reporting(E_ALL); ganz am anfang der datei hilft bei sowas eigentlich immer. er wird dir dann sagen das $row keinen index hat der "id" lautet

Er zeigt mir zwar nun die ID Nummern an aber folgendes steht neben der ID

Notice: Undefined variable: id in /usr/export/www/vhosts/funnetwork/hosting/iiinet/dabei-script/delete.php on line 42
 
was ja auch richtig ist. du hast sie ja nicht definiert. du lässt sie dir nur ausgeben. was nicht existiert kann nicht ausgegeben werden.
 
das solltest du eigentlich wissen, schließlich hast du einige variablen in deinem script deklariert.

Variablendefinition

durch die deklaration legst du den namen der variablen und ihren wert fest.

was du versuchst ist, $id auszugeben, obwohl dem interpreter diese variable (zu diesem zeitpunkt) gar nicht bekannt ist.

PHP:
<?php
echo $id; //funktioniert nicht, ist noch nicht deklariert

/**
*funktioniert ebenfalls nicht, da du dort einen string 
*an eine noch nicht deklarierte variable anhängen möchtest
**/
$id .= 'hallo'; 
?>

richtig wäre z.B.

PHP:
<?php
$id = $_GET["id"]; //zuweisung des werts von $_GET["id"] zur variablen $id
echo $id; //ausgabe des werts von $id

$id = 'Hi, '; 
$id .= 'Hallo';
echo $id;
?>

$_GET["id"] ist auch eine variable, ihren wert und schlüssel findest du auch in der url
Code:
www.seite.de/index.php?id=3
 
Zurück
Oben