Niet onder nul
Ik heb een SQL query:
$sql = mysql_query("UPDATE .... SET houdbaar = houdbaar - 1");
Werkt opzich prima, maar ik wil als houdbaar is kleiner dan 0 dat er dan geen één afgaat, ofwel ik wil geen negatieve getallen.
Hoe kan ik mijn query zo inrichten dat dit niet gebeurt?
Jelmer
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$query = "
SELECT houdbaar
FROM ......";
$houdbaar = mysql_query($query);
if($houdbaar > 0)
{
$sql = mysql_query("UPDATE .... SET houdbaar = houdbaar - 1");
}
//en als dat niet zo is,, gaat hij verder zonder iets anders te doen
?>
$query = "
SELECT houdbaar
FROM ......";
$houdbaar = mysql_query($query);
if($houdbaar > 0)
{
$sql = mysql_query("UPDATE .... SET houdbaar = houdbaar - 1");
}
//en als dat niet zo is,, gaat hij verder zonder iets anders te doen
?>
Edit:
hier zit nog geen foutafhandeling in
hier zit nog geen foutafhandeling in
Gewijzigd op 01/01/1970 01:00:00 door Nicoow Unknown
Eeehm: De UNSIGNED optie maakte het toch onmogelijk om negatieve waardes te krijgen? En het verdubbelde het bereik toch?
Ja, dat klopt.
Wanneer 'houdbaar' een integer is, zul je met deze update-query nooit negatieve getallen krijgen. Tevens krijg je geen foutmelding wanneer de waarde reeds 0 is, met een UNSIGNED gebeurt dat wel. (kan overigens wenselijk zijn, ligt aan jouw situatie.)
Quote:
Ik weet het niet zeker, maar volgens mij geeft MySQL hier standaard weer eens geen foutmelding.Tevens krijg je geen foutmelding wanneer de waarde reeds 0 is, met een UNSIGNED gebeurt dat wel.
Blanche schreef op 09.09.2007 22:20:
Ik weet zeker dat MySQL een ***BEEEEEEP*** product is maar ik krijg hier lokaal (God zij dank!) toch een foutmelding op een negatieve waarde op een unsigned integer:Quote:
Ik weet het niet zeker, maar volgens mij geeft MySQL hier standaard weer eens geen foutmelding. Tevens krijg je geen foutmelding wanneer de waarde reeds 0 is, met een UNSIGNED gebeurt dat wel.
Quote:
Warning: #1264 Out of range value adjusted for column 'id' at row 1
Het zou ook niet veel gekker moeten worden...
Desondanks: PgFrank advisteert PgSQL!