/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
NULL Værdi
Fra : Morten Sandholdt


Dato : 24-11-02 00:42

Hej
Jeg laver et udtræk fra MySQL i PHP som er som flg.

$MyID = 1;
$strQuery = "SELECT * FROM tablename where ID = 'MyID' ";
$MyResult=mysql_query($strQuery,$db);
if ($MyRow = mysql_fetch_array($MyResult)) {
if($CheckValue = $MyRow["Fieldname"]) {
$CheckValue = "YES";
}
}


Det den gør er at tjekke om der er en værdi i feltet [Fieldname].
Det fungere fint, men når der er en NULL værdi i feltet får jeg fejlen:
Warning: Undefined index: $CheckValue
Og et linienummer som peger på linien: if($CheckValue =
$MyRow["Fieldname"]) {
Det er der jo ikke noget mærkeligt i eftersom værdien er tom.
Har i en smart måde at tjekke for Null værdi i PHP? Ikke i SQL der kan jeg
godt, men jeg vil ikke lave en ny sql sætning for at tjekke det hvis jeg kan
blive fri.

Hilsen
Morten



 
 
Benny Nissen (24-11-2002)
Kommentar
Fra : Benny Nissen


Dato : 24-11-02 02:12

> Har i en smart måde at tjekke for Null værdi i PHP? Ikke i SQL der kan jeg
> godt, men jeg vil ikke lave en ny sql sætning for at tjekke det hvis jeg
kan
> blive fri.
>
Kan du ikke bare bruge is_null ?

http://www.php.net/manual/en/function.is-null.php


--
Benny



Jonas Koch Bentzen (24-11-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 24-11-02 12:00

Morten Sandholdt wrote:
>
> Jeg laver et udtræk fra MySQL i PHP som er som flg.
>
> $MyID = 1;
> $strQuery = "SELECT * FROM tablename where ID = 'MyID' ";
> $MyResult=mysql_query($strQuery,$db);
> if ($MyRow = mysql_fetch_array($MyResult)) {
> if($CheckValue = $MyRow["Fieldname"]) {
> $CheckValue = "YES";
> }
> }
>
>
> Det den gør er at tjekke om der er en værdi i feltet [Fieldname].
> Det fungere fint, men når der er en NULL værdi i feltet får jeg fejlen:
> Warning: Undefined index: $CheckValue
> Og et linienummer som peger på linien: if($CheckValue =
> $MyRow["Fieldname"]) {
> Det er der jo ikke noget mærkeligt i eftersom værdien er tom.
> Har i en smart måde at tjekke for Null værdi i PHP?

Du skal bruge

if (!empty($MyRow["Fieldname"])) {
$CheckValue = $MyRow["Fieldname"];
// ...
}

PHP har forskellige fejlrapporteringsniveauer, og på det strengeste niveau
brokker PHP sig, hvis man bruger en variabel eller en arraynøgle, som ikke
er sat.

http://dk.php.net/isset
http://dk.php.net/empty
http://dk.php.net/array_key_exists

--
Jonas Koch Bentzen

Morten Sandholdt (24-11-2002)
Kommentar
Fra : Morten Sandholdt


Dato : 24-11-02 13:01

Hej
Jeg tror ikke helt jeg har den rigtige løsning her.
Jeg laver denne line:
if ($MyRow = mysql_fetch_array($MyResult)) {

Der sætter jeg $Myrow til at være mysql_fetch_array($MyResult), allerede der
går det jo galt hvis det er en NULL værdi, men jeg kan vel ikke kalde
mysql_fetch_array($MyResult) først og tjekke for NULL værdi og så bagefter
sætte $Myrow = mysql_fetch_array($MyResult), så "spoler" jeg vel en post
længere frem i min tabel.


Hilsen
Morten





"Jonas Koch Bentzen" <ingen.email@eksempel.dk> wrote in message
news:arqbgb$grs$1@sunsite.dk...
> Morten Sandholdt wrote:
> >
> > Jeg laver et udtræk fra MySQL i PHP som er som flg.
> >
> > $MyID = 1;
> > $strQuery = "SELECT * FROM tablename where ID = 'MyID' ";
> > $MyResult=mysql_query($strQuery,$db);
> > if ($MyRow = mysql_fetch_array($MyResult)) {
> > if($CheckValue = $MyRow["Fieldname"]) {
> > $CheckValue = "YES";
> > }
> > }
> >
> >
> > Det den gør er at tjekke om der er en værdi i feltet [Fieldname].
> > Det fungere fint, men når der er en NULL værdi i feltet får jeg fejlen:
> > Warning: Undefined index: $CheckValue
> > Og et linienummer som peger på linien: if($CheckValue =
> > $MyRow["Fieldname"]) {
> > Det er der jo ikke noget mærkeligt i eftersom værdien er tom.
> > Har i en smart måde at tjekke for Null værdi i PHP?
>
> Du skal bruge
>
> if (!empty($MyRow["Fieldname"])) {
> $CheckValue = $MyRow["Fieldname"];
> // ...
> }
>
> PHP har forskellige fejlrapporteringsniveauer, og på det strengeste niveau
> brokker PHP sig, hvis man bruger en variabel eller en arraynøgle, som ikke
> er sat.
>
> http://dk.php.net/isset
> http://dk.php.net/empty
> http://dk.php.net/array_key_exists
>
> --
> Jonas Koch Bentzen



Jonas Koch Bentzen (24-11-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 24-11-02 13:50

Morten Sandholdt wrote:
>
> Jeg tror ikke helt jeg har den rigtige løsning her.
> Jeg laver denne line:
> if ($MyRow = mysql_fetch_array($MyResult)) {
>
> Der sætter jeg $Myrow til at være mysql_fetch_array($MyResult), allerede
> der går det jo galt hvis det er en NULL værdi

Niks - jeg er rimelig sikker på, at $MyRow altid vil være et array. Den kan
ikke være null - heller ikke, hvis samtlige felter i rækken kun indeholder
null.

Problemet opstår, hvis du forsøger at gøre noget med $MyRow["FieldName"] og
der ikke findes en kolonne ved navn FieldName. Findes der derimod en
kolonne ved navn FieldName i resultatrækken, så vil der ikke komme nogen
fejl - heller ikke selvom FieldName-kolonnen er null.

God læsning:
http://usenet.dk/netikette/citatteknik.html

--
Jonas Koch Bentzen

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste