Veröffentlicht 26. Januar 201114 j Hallo an alle, bin ein Anfänger was PHP angeht. Deshalb wende ich mich an euch. Ich habe eine MySQL - DB (mit tablle 'haustier) mit folgenden werten erstellt: Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | besitzer | varchar(20) | YES | | NULL | | | gattung | varchar(20) | YES | | NULL | | | geschlecht | char(1) | YES | | NULL | | | geburtstag | date | YES | | NULL | | | todestag | date | YES | | NULL | | So, nun habe ich ein HTML Formular geschrieben und mit diesem Formular schreibe ich über PHP in die Tabelle haustier... Folgendes Problem: Ich will, dass wenn in das Formular keine Werte angegeben werde, das PHP - Script der Datenbank den Wert "NULL" übergibt. Danke für eure Hilfe.
26. Januar 201114 j ... dann musst du das in deinem SQL-Statement entsprechend berücksichtigen... reicht es aber nicht einfach auch auf einen Leerstring zu prüfen?
26. Januar 201114 j ... dann musst du das in deinem SQL-Statement entsprechend berücksichtigen... reicht es aber nicht einfach auch auf einen Leerstring zu prüfen? Wenn das Feld leer ist schreibe NULL... soweit ist es mir klar. Einzelne Felder kann ich auch mit eine simplen IF-Anweisung prüfen. Wenn ich aber mehrere Felder habe, die leer sind, geht das nicht mehr. Mir fehlt leider der Ansatz (und natürlich auch die erklärung zu einem passenden Quellcode) wie ich das einfach realisieren kann.
28. Januar 201114 j Einzelne Felder kann ich auch mit eine simplen IF-Anweisung prüfen. Wenn ich aber mehrere Felder habe, die leer sind, geht das nicht mehr. Warum? Was hindert Dich daran, jedes Feld zu prüfen? Wie genau sieht Dein Ansatz aus und was funktioniert nicht?
28. Januar 201114 j Hallo ich nochmal, hier ist mein aktueller Lösungsansatz. Ich hab aber keine Ahnung ob der Funktioniert. Hab jetzt übers WE nicht die Möglichkeit es zu testen. Ist der Weg richtig oder bin ich auf dem falschen Pfad. Hier der Code: <?php include ("dbconnect.php"); $name = $_POST["name"]; $besitzer = $_POST["besitzer"]; $gat = $_POST["gattung"]; $ges = $_POST["geschlecht"]; $geb = $_POST["geburtstag"]; $tod = $_POST["todestag"]; switch ($name) { case ($name = ""); $insert = "INSERT INTO haustier (name) values (NULL)"; $toinsert = mysql_query($insert); break; case ($name != ""); $insert = "INSERT INTO haustier (name) values ('$name')"; $toinsert = mysql_query($insert); break; } switch ($besitzer) { case ($besitzer = ""); $insert = "INSERT INTO haustier (besitzer) values (NULL)"; $toinsert = mysql_query($insert); break; case ($besitzer != ""); $insert = "INSERT INTO haustier (besitzer) values ('$besitzer')"; $toinsert = mysql_query($insert); break; } switch ($gat) { case ($gat = ""); $insert = "INSERT INTO haustier (gat) values (NULL)"; $toinsert = mysql_query($insert); break; case ($gat != ""); $insert = "INSERT INTO haustier (gat) values ('$gat')"; $toinsert = mysql_query($insert); break; } switch ($ges) { case ($ges = ""); $insert = "INSERT INTO haustier (ges) values (NULL)"; $toinsert = mysql_query($insert); break; case ($ges != ""); $insert = "INSERT INTO haustier (ges) values ('$ges')"; $toinsert = mysql_query($insert); break; } switch ($geb) { case ($geb = ""); $insert = "INSERT INTO haustier (geb) values (NULL)"; $toinsert = mysql_query($insert); break; case ($geb != ""); $insert = "INSERT INTO haustier (geb) values ('$geb')"; $toinsert = mysql_query($insert); break; } switch ($tod) { case ($tod = ""); $insert = "INSERT INTO haustier (tod) values (NULL)"; $toinsert = mysql_query($insert); break; case ($tod != ""); $insert = "INSERT INTO haustier (tod) values ('$tod')"; $toinsert = mysql_query($insert); break; } ?> [/PHP] Gruß Bearbeitet 28. Januar 201114 j von Gammagandolf
28. Januar 201114 j Ist der Weg richtig oder bin ich auf dem falschen Pfad. falscher pfad. switch ($name) { case ($name = ""); $insert = "INSERT INTO haustier (name) values (NULL)"; $toinsert = mysql_query($insert); break; case ($name != ""); $insert = "INSERT INTO haustier (name) values ('$name')"; $toinsert = mysql_query($insert); break; } [/PHP] zunächst: PHP: switch - Manual außerdem legst du pro feld einen datensatz in der tabelle haustiere an, was sicher nicht gewünscht ist.
31. Januar 201114 j Hallo und danke erstmal an alle. Natürlich, der Code war Quatsch. Wie gesagt bin blutiger Anfänger und versuch mich da nur bischen durchzukämpfen. Trotzdem stehe ich nun auf dem Schlauch und weis nicht, wie ich das Problem lösen kann. Welche Lösungsansätze hättet ihr? Wie gesagt, müsst kein Code posten, allerdings wäre eine Beschreibung der Herangehensweise sinnvoll. Ich danke euch.
31. Januar 201114 j Du musst das Statement passend zusammen bauen. Wenn Du was fertiges möchtest nimm ADODB oder PDO. Ansonsten benutze eben z.B. assoziative Arrays in die Du die Feldnamen + Inhalte ablegst und zum Schluss generierst Du daraus dann das fertige SQL Statement (String Konkatination der einzelnen Array Elemente)
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.