textvak leeg... plaats NULL in database

Status
Niet open voor verdere reacties.

Mitsie007

Gebruiker
Lid geworden
21 okt 2006
Berichten
276
haaj,

ik heb iets waar ik niet zo uit kom.

Ik heb een database gebouwd. Vervolgens een pagina met textvlakken en nog een pagina met een javascript functie. Die javascriptfunctie checkt de ingevulde waardes op correctheid. Zo niet, dan geeft hij een foutmelding.

In mijn database heb ik bij één vlak de mogelijkheid tot NULL. In de database is het een time-... (even geen idee hoe het heet).
Ik wil nu dat, wanneer je niets invuld, hij NULL weergeeft in de database. Dit is mij nog niet gelukt.
Hoe kan ik dit doen met javascript?

Mijn eigen idee was iets als dit:

if (document.form.extra.value == ""){
document.form.extra.value = "NULL";
}

(ik ben een beginner met javascript, dat verklaard denk ik een hoop:p)
Dank je!
 
Als je wilt dat hij het open textveld letterlijk de string "NULL" gaat geven, klopt de code die je getoond hebt. Als je echter de waarde Null wilt, in de zin van "echt niks", moet je gewoon de quotes weglaten, en het moet in kleine letters:
Code:
if (document.form.extra.value == ""){
    document.form.extra.value = null;
}
 
Dit moet niet via Javascrip, Javascript slaat niks op in de database. Dit moet je doen in je PHP script. Je moet dus in je PHP bestand controleren of er een waarde is gegeven en als dat zo is in je SQL query NULL zetten in plaats van de waarde van het textveld.
 
Laatst bewerkt:
oke, via PHP inderdaad....

wat ik nu doe, klopt dat?

if(isset($_POST['wijzig'])){

if($_POST['extra']==""){
$extra="NULL";
}
else {
$extra=$_POST['extra'];
}
}

(dan hier de update query)....

Klopt dat? Of zit ik nu totaal verkeerd?
 
Dat hangt af van hoe je je query samenstelt maar ik denk niet dat het gaat werken.

Waarschijnlijk komt je query er dan ongeveer zo uit te zien:
UPDATE table SET `kolom` = '';

NULL in php is een variable "met geen waarde" (ja, en niet "zonder waarde"). Mijn gok is dat dat neerkomt op een lege string. Misschien ook niet, dan krijg je iets als dit:
UPDATE table SET `kolom` = 'NULL';

Maar in beide gevallen wordt de waarde van kolom een string. Het staat immers tussen enkele quotes. Als je wilt dat de waarde NULL in je sql database komt moet het er zo uit zien, zonder quotes:
UPDATE table SET `kolom` = NULL;

De code om je sql query samen te stellen moet in dat geval dus ongeveer zo:
Code:
$query = "UPDATE table SET `kolom` = ".($extra == "" ? "NULL" : "[COLOR="Red"]'[/COLOR]{$extra}[COLOR="Red"]'[/COLOR]");

Dan komt er uit
"UPDATE table SET `kolom` = NULL"
of
"UPDATE table SET `kolom` = '{$extra}'";
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan