PHP Script MySQL - Neuer Eintrag


Jule_Fisi

Grünschnabel
Hallo ihr Lieben, ich weiß leider nicht mehr weiter. Ich muss eine PHP Seite schreiben , welche auf meine Datenbank zugreift und auch neue Einträge schreibt.
Meine Fehlermeldung ist :
Undefined variable: asend in /var/www/books/new.php on line 6
Mein Code :
PHP:
<html>
<head>
<?php

if ($asend)
  {
     $db =  mysql_connect( "**" , "**" , "**" );

      $sqlab = "insert books";
      $sqlab .= "(titel, publication_year, publication_company,";
      $sqlab .= " theme) values ";
      $sqlab .= "('$ti', '$py', '$pc', '$th')";

      mysql_db_query("archive", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Ein neuer Eintrag.<p>";
      else
      {
         echo "Fehler! ";
         echo "kein Eintrag hinzugefügt<p>";
      }
      mysql_close($db);
  }
?>



</head>
<body>
Eingabe
<form action = "new.php" method = "post">
    <input name="ti"> Titel<p>
    <input name="py"> Erscheinungsjahr<p>
  <input name="pc"> Verlag <p>
   <input name="th"> Thema<p>
   <input type="submit" name="asend">
    <input type="reset">
</form>

Alle Datensätze <a href="tabelle.php">anzeigen</a>
</body>


</html>
Ich hoffe ihr könnt mir weiterhelfen :) Danke! :)
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

1. Die Meldung ist eine Info / Notice, keine Fehlermeldung. Übersetzt bedeutet es, dass du auf eine Variable zugreifst, die noch gar nicht definiert wurde. In deinem Falle sorgt das dafür, dass dein If-Block nicht ausgewertet wird.
2. mysql_* Funktionen gibt es ab PHP 7 nicht mehr. Bitte umsteigen auf mysqli oder PDO
3. Wo kommen $ti, $py, $pc und $th her?
4. Dein Code ist höchst wahrscheinlich anfällig für SQL-Injection, bitte Prepared Statements verwenden.

Grüsse,
BK
 

Jule_Fisi

Grünschnabel
Hi,

1. Die Meldung ist eine Info / Notice, keine Fehlermeldung. Übersetzt bedeutet es, dass du auf eine Variable zugreifst, die noch gar nicht definiert wurde. In deinem Falle sorgt das dafür, dass dein If-Block nicht ausgewertet wird.
2. mysql_* Funktionen gibt es ab PHP 7 nicht mehr. Bitte umsteigen auf mysqli oder PDO
3. Wo kommen $ti, $py, $pc und $th her?
4. Dein Code ist höchst wahrscheinlich anfällig für SQL-Injection, bitte Prepared Statements verwenden.

Grüsse,
BK
Die Meldung wird jedoch als error-Meldung angezeigt und nicht als notice...
Okay, dann muss ich darauf umsteigen, häng glaube ich noch in PHP 5 fest :D
$ti, $py, $pc und $th sollen die Variablen für titel, publication_year, publication_company und theme sein welche deren Werte annehmen sollen...
Ich bin leider noch nicht wirklich der PHP bzw Datenbank Profi, lern das gerade alles erst in der Ausbildung also verzeiht die dummen fragen :D
 

EuroCent

Erfahrenes Mitglied
Die Frage ist dennoch woher die variablen $ti, $py, $pc und $th kommen. Nicht was sie bedeuten.
Denn in deinem Script Zeile 13 weißt Du Variablen zu die es nirgendwo gibt.

Du versuchst Variablen zu Verwenden die keinen Wert oder Zustimmung finden.
Ganz Logisch dass dir PHP dann die Fehlermeldung/Notice/Warning anzeigt :)

PS: Verwende mysqli oder PDO!
 

Jule_Fisi

Grünschnabel
Habe jetzt gesehen das ziemlich viel an dem Script falsch lief und es verbessert und siehe da es funktioniert, trotzdem danke für eure hilfe :)
 

Neue Beiträge