Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben
... 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.

Geschrieben
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?

Geschrieben (bearbeitet)

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 von Gammagandolf
Geschrieben

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.

Geschrieben

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.

Geschrieben

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)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...