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! :)
 
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
 
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
 
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!
 
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 :)
 
Zurück