php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.01.2011, 18:13  
noop
Gast
 
Beiträge: n/a
Standard [Erledigt] Datenbankeintrag mit dem Wert NULL

Hi,

ich muß einen Eintrag in die DB bringen, der den Wert NULL hat.

Der DB-TYP lautet: decimal(10,2)

Hier der entsprechende PHP Code:
PHP-Code:
if (empty($_POST['grundstueck']))
{
    
$grundstueck NULL;
}
else
{
    
$grundstueck "'".$_POST['grundstueck']."'";

Ich fülle dann mein Formular aus und lasse das Feld leer.
Somit greift empty und setzt den Wert NULL.

Den SQL-Befehl lasse ich mir dann ausgeben.
Dort taucht NULL aber nicht.

Code:
UPDATE `artikel`
		        SET
		            ,`grundstueck`  		= 
		            ,`ip`               	= *****
		            ,`datum`            	= NOW()
			WHERE	id = 207
Wie kann ich denn NULL noch übergeben ?
In 'NULL' darfg es ja nicht sein. LAsse ich ' weg, wird es wohl als PHP Befegl interpretiert.

Geändert von noop (18.01.2011 um 18:17 Uhr).
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.01.2011, 18:19  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Wenn du NULL ausgibst, ist das so viel wie ein leerer String.
Darum sieht man dann nichts von diesem NULL.

Wenn du MySQL sagen willst, dass ein Wert NULL sein soll, musst du das wohl als String übergeben. Also dem SQL-Befehl dann nicht NULL übergeben, sondern 'null'.

Sodass es dann z. B. so ausschaut:

'UPDATE tabelle SET spalte=null WHERE id=123;'

EDIT:
PHP-Code:
if (empty($_POST['grundstueck']))
{
    
$grundstueck 'null';
}
else
{
    
$grundstueck "'".mysql_real_escape_string($_POST['grundstueck'])."'";


Geändert von coola (18.01.2011 um 18:25 Uhr).
coola ist offline   Mit Zitat antworten
Alt 18.01.2011, 18:23  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Wie coola schon sagt
PHP-Code:
$query "UPDATE `artikel`
                SET
                    ,`grundstueck`          = NULL
                    ,`ip`                   = '127.0.0.1'
                    ,`datum`                = NOW()
            WHERE    `id` = 207"
;
mysql_query($query); 
__________________
Frank ist offline   Mit Zitat antworten
Alt 18.01.2011, 18:24  
noop
Gast
 
Beiträge: n/a
Standard

hmm... soweit klar.
Beantwortet aber nicht wirklich die Frage, wie ich NULL nun in die DB übergebe.

Code:
UPDATE `artikel` SET `grundstueck` = NULL WHERE `id` = 207 LIMIT 1
So muß der Code lauten, dann SQL für den Typ decimal(10,2) nichts speichert.
Sprich: Das Feld tatsächlich leer läßt.

Zur Zeit ist es so, das wenn ich ein leeres Feld abschicke, 0,00 eingetragen wird.
  Mit Zitat antworten
Alt 18.01.2011, 18:27  
noop
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Frank Beitrag anzeigen
Wie coola schon sagt
PHP-Code:
$query "UPDATE `artikel`
                SET
                    ,`grundstueck`          = NULL
                    ,`ip`                   = '127.0.0.1'
                    ,`datum`                = NOW()
            WHERE    `id` = 207"
;
mysql_query($query); 
Ahh... coola hat sien Posting erweitert...

Wie der Syntax auszusehen hat, denke ich weiß ich.
Sicherlich wird es auch wie Frank es grad geschrieben hat auch klappen... nur hat er jetzt einen staren/festen Wert eingetragen.

Deshlab ist aber die if/else da. Die soll das ja dynamisch machen, so dass ich auch mal einen Wert eintragen kann, der dann sauber gespeichert wird
  Mit Zitat antworten
Alt 18.01.2011, 18:34  
Erfahrener Benutzer
 
Registriert seit: 17.01.2011
Beiträge: 171
PHP-Kenntnisse:
Anfänger
curryworld befindet sich auf einem aufstrebenden Ast
Standard

$grundstueck = NULL;

versuch das dochmal so wie coola:
$grundstueck = 'NULL';
curryworld ist offline   Mit Zitat antworten
Alt 18.01.2011, 18:35  
noop
Gast
 
Beiträge: n/a
Standard

Okay... ich habs. Wird sicherlich auch intelligenter zu lösen sein.

Da ich NULL nicht mit '' umgeben darf, hab ich halt den kompletten Wert übergeben.
Sicherlich nicht grad schön... aber es funzt.

PHP-Code:
if (empty($_POST['grundstueck']))
{
    
$grundstueck    =    ',`grundstueck` = NULL';
}
else
{
    
$grundstueck ",`grundstueck` = "."'".$_POST['grundstueck']."'";

  Mit Zitat antworten
Alt 18.01.2011, 18:38  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Doch du darfst NULL mit ' und sogar mit " umgeben innerhalb von PHP.
PHP-Code:
$grundstueck = (empty($_POST['grundstueck'])) ? "NULL"
                                              
"'".mysql_real_escape_string($_POST["grundstueck"])."'";

$query "INSERT (x,y,z) VALUES (1,2,".$grundstueck.")";
mysql_query($query); 
__________________
Frank ist offline   Mit Zitat antworten
Alt 18.01.2011, 18:42  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Siehe auch EDIT Eintrag #2
coola ist offline   Mit Zitat antworten
Alt 18.01.2011, 18:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

HALT!

Das ist zu viel Geschwafel im Kreise hier. Fakt ist, die Angabe in PHP und in der Query haben nicht viel miteinander zu tun, denn es kommt darauf an, wie die PHP-Parameter verarbeitet werden. Entscheidend ist nahezu allein die Verwendung der Hochkommata, die Du nicht beim Setzen der Variable beeinflussen kannst (oder doch, dann ist der Code aber u.U. sehr unsicher).
Du brauchst also beim Zusammenstellen der Query eine Fallunterscheidung. Wie Deine NULL-Werte PHP-seitig repräsentiert werden ist zweitrangig.

Zitat:
Zur Zeit ist es so, das wenn ich ein leeres Feld abschicke, 0,00 eingetragen wird.
Dann kann es sein, dass das Feld NOT NULL ist und wiederum der Wert von MySQL umgewandelt wird.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySQL + PHP script De Sena PHP Einsteiger 8 09.01.2011 13:50
Frage zu openGeoDb Joe Off-Topic Diskussionen 18 30.11.2010 15:54
Fehler bei CSV Import > MySQL fulltilt Datenbanken 8 20.08.2010 14:53
Tabelle nach Join sortieren xhiBseN Datenbanken 9 29.03.2010 10:52
SQL richtig umwandeln :( Sp1n PHP Tipps 2010 6 29.01.2010 11:35
[Erledigt] Fehler in foreach zoro PHP Tipps 2009 25 08.10.2009 18:25
[Erledigt] im sql kann ich tabelle nicht hinzufügen autofieber Datenbanken 7 01.03.2009 18:38
[Erledigt] Problem bei INSERTEN INTO RedDragon PHP Tipps 2008 37 18.07.2008 16:26
Normalisierung einer chaotischen Tabelle maeck Datenbanken 10 12.12.2006 18:17
Updaten Delet und Insert klappen nicht PHP Tipps 2006 13 13.06.2006 13:59
[Erledigt] Bestell-Tabelle ok? PHP-Fortgeschrittene 4 28.11.2005 21:35
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
PHP-Fehlermeldung, weiss nicht mehr weiter PHP Tipps 2005-2 12 21.09.2005 12:56
Standart SQL Dump in PHP = Arbeits/Kostenersparnis ???????? PHP-Fortgeschrittene 7 12.06.2005 11:55
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql null in string übergeben, if datenbank eintrag \null\, mysql null als wert übergeben, php datenbankeintrag is null, php wert als null übergeben, php datenbankeintrag null

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum