/ 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
<> fra ingenting?
Fra : gc


Dato : 29-03-07 09:09

Hvordan er det nu lige jeg får følgende til at virke:

if ($gruppeinfo != ' ') {echo $gruppeinfo;}

Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder data. (fra
mysql)

På forhånd tak

/Gert



 
 
Johan Holst Nielsen (29-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-03-07 09:59

gc wrote:
> Hvordan er det nu lige jeg får følgende til at virke:
>
> if ($gruppeinfo != ' ') {echo $gruppeinfo;}

if($gruppeinfo != '') { echo $gruppeinfo; }

I nogle tilfælde vil det også være en fordel evt. atl ave en trim på
$gruppeinfo

Mvh
Johan

gc (29-03-2007)
Kommentar
Fra : gc


Dato : 29-03-07 11:15

>
> I nogle tilfælde vil det også være en fordel evt. atl ave en trim på
> $gruppeinfo
>
hvad er "en trim" ?



MooreHojer (29-03-2007)
Kommentar
Fra : MooreHojer


Dato : 29-03-07 11:23

gc skrev:
>> I nogle tilfælde vil det også være en fordel evt. atl ave en trim på
>> $gruppeinfo
>>
> hvad er "en trim" ?
>

en indbygget php-funtion der fjerner mellemrum

Bertel Lund Hansen (29-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 29-03-07 11:58

MooreHojer skrev:

> en indbygget php-funtion der fjerner mellemrum

Den fjerner blanktegn (mellemrum, linjeskift, retur og
tabulering).

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Martin (30-03-2007)
Kommentar
Fra : Martin


Dato : 30-03-07 11:57

Bertel Lund Hansen wrote:
> MooreHojer skrev:
>
>> en indbygget php-funtion der fjerner mellemrum
>
> Den fjerner blanktegn (mellemrum, linjeskift, retur og
> tabulering).

Fra starten og slutningen af en streng...

Fx
$str = ' hej med dig ';
vil blive med trim() $str = 'hej med dig';

MooreHojer (29-03-2007)
Kommentar
Fra : MooreHojer


Dato : 29-03-07 11:26

gc skrev:
> Hvordan er det nu lige jeg får følgende til at virke:
>
> if ($gruppeinfo != ' ') {echo $gruppeinfo;}
>
> Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder data. (fra
> mysql)

if (isset($gruppeinfo)) {echo $gruppeinfo;}

funtionen isset() returnerer sandt hvis $gruppeinfo har fået tilskrevet
indhold, ellers returnerer den falsk, du kan derfor med fordel benytte
den i dette tilfælde.

Johan Holst Nielsen (29-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-03-07 11:43

MooreHojer wrote:
> gc skrev:
>> Hvordan er det nu lige jeg får følgende til at virke:
>>
>> if ($gruppeinfo != ' ') {echo $gruppeinfo;}
>>
>> Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder data.
>> (fra mysql)
>
> if (isset($gruppeinfo)) {echo $gruppeinfo;}
>
> funtionen isset() returnerer sandt hvis $gruppeinfo har fået tilskrevet
> indhold, ellers returnerer den falsk, du kan derfor med fordel benytte
> den i dette tilfælde.

Naaah - isset() vil nok ikke være optimal

$foo = '';
if(isset($foo)) { echo 'Er ikke tom'; }

Ovenstående vil udskrive "Er ikke tom"

derimod kan ved tomme strenge bruges empty()

f.eks.

$foo = '';
if(empty($foo)) { echo 'Er ikke tom'; }

Vil intet udskrive....

Bemærk dog at
$foo = 0;
$foo = '0';
heller ikke vil udskrive noget ...

Mvh
Johan

MooreHojer (29-03-2007)
Kommentar
Fra : MooreHojer


Dato : 29-03-07 11:49

Johan Holst Nielsen skrev:
> MooreHojer wrote:
>> gc skrev:
>>> Hvordan er det nu lige jeg får følgende til at virke:
>>>
>>> if ($gruppeinfo != ' ') {echo $gruppeinfo;}
>>>
>>> Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder data.
>>> (fra mysql)
>>
>
> Naaah - isset() vil nok ikke være optimal
>
> $foo = '';
> if(isset($foo)) { echo 'Er ikke tom'; }

Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
database så vil den ikke komme til at indeholde en tom streng, men i
stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
isset() = FALSE i sidstenævnte tilfælde

gc (29-03-2007)
Kommentar
Fra : gc


Dato : 29-03-07 13:28

>>
>> $foo = '';
>> if(isset($foo)) { echo 'Er ikke tom'; }
>
> Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
> database så vil den ikke komme til at indeholde en tom streng, men i
> stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
> isset() = FALSE i sidstenævnte tilfælde

Jeg prøvede med if ($gruppeinfo != NULL) {echo $gruppeinfo}
Det virker også men jeg ved ikke om det er det optimale.
Du har ret i at der enten vil være "ingenting" eller "noget" i $gruppeinfo,
aldrig en tom streng.
Der mangler lige en funktion i PHP der hedder is_not_null



Johan Holst Nielsen (29-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-03-07 14:05

gc wrote:
>>> $foo = '';
>>> if(isset($foo)) { echo 'Er ikke tom'; }
>> Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
>> database så vil den ikke komme til at indeholde en tom streng, men i
>> stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
>> isset() = FALSE i sidstenævnte tilfælde
>
> Jeg prøvede med if ($gruppeinfo != NULL) {echo $gruppeinfo}
> Det virker også men jeg ved ikke om det er det optimale.
> Du har ret i at der enten vil være "ingenting" eller "noget" i $gruppeinfo,
> aldrig en tom streng.
> Der mangler lige en funktion i PHP der hedder is_not_null

if(!is_null($gruppe_info)) - den finds skam

mvh
johan

gc (29-03-2007)
Kommentar
Fra : gc


Dato : 29-03-07 14:56

>
> if(!is_null($gruppe_info)) - den finds skam
>
Ok, smart. Er det så ikke den jeg skal bruge, eller er der en hage ved den?



Johan Holst Nielsen (29-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-03-07 18:40

gc wrote:
>> if(!is_null($gruppe_info)) - den finds skam
>>
> Ok, smart. Er det så ikke den jeg skal bruge, eller er der en hage ved den?

Ingen hage ved det hvis du tjekker på hvorvidt værdien er null... hvis
!= null virker - virker ovenstående også - det er blot 2 forskellige
måder at skrive det samme på...

mvh
johan

Peter Brodersen (29-03-2007)
Kommentar
Fra : Peter Brodersen


Dato : 29-03-07 21:20

On Thu, 29 Mar 2007 19:39:58 +0200, Johan Holst Nielsen
<spam@phpgeek.dk> wrote:

>>> if(!is_null($gruppe_info)) - den finds skam
>>>
>> Ok, smart. Er det så ikke den jeg skal bruge, eller er der en hage ved den?
>
>Ingen hage ved det hvis du tjekker på hvorvidt værdien er null... hvis
>!= null virker - virker ovenstående også - det er blot 2 forskellige
>måder at skrive det samme på...

Den ene tjekker dog type:

$ php -r 'var_dump(!is_null(0));'
bool(true)

$ php -r 'var_dump(0 != null);'
bool(false)

--
- Peter Brodersen
Kendt fra Internet

Johan Holst Nielsen (30-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-03-07 07:45

Peter Brodersen wrote:
> On Thu, 29 Mar 2007 19:39:58 +0200, Johan Holst Nielsen
> <spam@phpgeek.dk> wrote:
>
>>>> if(!is_null($gruppe_info)) - den finds skam
>>>>
>>> Ok, smart. Er det så ikke den jeg skal bruge, eller er der en hage ved den?
>> Ingen hage ved det hvis du tjekker på hvorvidt værdien er null... hvis
>> != null virker - virker ovenstående også - det er blot 2 forskellige
>> måder at skrive det samme på...
>
> Den ene tjekker dog type:
>
> $ php -r 'var_dump(!is_null(0));'
> bool(true)
>
> $ php -r 'var_dump(0 != null);'
> bool(false)


aah ja...

men
$ php -r 'var_dump(0 !== null);'
bool(true)

er nok det rette "alternativt" til !is_null

mvh
johan

Johan Holst Nielsen (29-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 29-03-07 14:06

MooreHojer wrote:
> Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
> database så vil den ikke komme til at indeholde en tom streng, men i
> stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
> isset() = FALSE i sidstenævnte tilfælde

Hmmm - afhænger meget af hvorledes det ser ud ;) hvis gruppeinfo f.eks.
var et tekstfelt i et row på en database - så kunne den sagnes være
empty string ;)

F.eks. hvis hvis der var kontaktinformation og et af felterne indehold
tlf. nummer...

mvh
Johan

Martin (30-03-2007)
Kommentar
Fra : Martin


Dato : 30-03-07 11:59

MooreHojer wrote:
> Johan Holst Nielsen skrev:
>> MooreHojer wrote:
>>> gc skrev:
>>>> Hvordan er det nu lige jeg får følgende til at virke:
>>>>
>>>> if ($gruppeinfo != ' ') {echo $gruppeinfo;}
>>>>
>>>> Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder
>>>> data. (fra mysql)
>>>
>>
>> Naaah - isset() vil nok ikke være optimal
>>
>> $foo = '';
>> if(isset($foo)) { echo 'Er ikke tom'; }
>
> Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
> database så vil den ikke komme til at indeholde en tom streng, men i
> stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
> isset() = FALSE i sidstenævnte tilfælde

$select = mysql_query(SELECT.....);
if(mysql_num_rows($select)==0) echo "ingen linjer i databasen";
else echo "Der var sørme noget i databasen";

Johan Holst Nielsen (30-03-2007)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-03-07 18:11

Martin wrote:
> MooreHojer wrote:
>> Johan Holst Nielsen skrev:
>>> MooreHojer wrote:
>>>> gc skrev:
>>>>> Hvordan er det nu lige jeg får følgende til at virke:
>>>>>
>>>>> if ($gruppeinfo != ' ') {echo $gruppeinfo;}
>>>>>
>>>>> Jeg skal altså kun have skrevet $gruppeinfo hvis den indeholder
>>>>> data. (fra mysql)
>>>>
>>>
>>> Naaah - isset() vil nok ikke være optimal
>>>
>>> $foo = '';
>>> if(isset($foo)) { echo 'Er ikke tom'; }
>>
>> Ja, men eftersom $gruppeinfo er resultatet af en forespørgsel til en
>> database så vil den ikke komme til at indeholde en tom streng, men i
>> stedet indholdet af svaret fra databasen eller 'ingenting', den hvor
>> isset() = FALSE i sidstenævnte tilfælde
>
> $select = mysql_query(SELECT.....);
> if(mysql_num_rows($select)==0) echo "ingen linjer i databasen";
> else echo "Der var sørme noget i databasen";

Det er ikke det jeg tænker på... f.eks. kunne et eksempel være

$res = mysql_query("SELECT navn, info FROM gruppe....");
while(list($gruppenavn,$gruppeinfo) = mysql_fetch_row($res)) {
if(!empty($gruppeinfo)) { echo 'Info: '.$gruppeinfo; }
}

Der ville isset() ikke gøre noget som helst ;) Udover at printe Info: ud
hver gang.

Mvh
Johan

Martin (31-03-2007)
Kommentar
Fra : Martin


Dato : 31-03-07 22:56

Johan Holst Nielsen wrote:
> Der ville isset() ikke gøre noget som helst ;) Udover at printe Info: ud
> hver gang.

- Gælder jo også lige om at forstå problemstillingen hehe...

Nemlig.. for variablen $gruppeinfo er jo sat.. (is set).
men en variabel der er tom (empty) er også falsk
$gruppeinfo = "";

if(!$gruppeinfo) == if(empty($gruppeinfo))

Dog kan variablen jo så indeholde
$gruppeinfo = " ";
og her vil både
if(!$gruppeinfo) og
if(empty($gruppeinfo))
fejle, da strengen jo ikke er tom.
Man kan desværre ikke lave en
if(empty(trim($gruppeinfo))

jvf. php.net/empty
Note: empty() only checks variables as anything else will result in a
parse error. In other words, the following will not work:
empty(trim($name)).

men man kan
if(!trim($gruppeinfo))

Dog skal man passe lidt på dette, da man jo egentlig ikke "kender"
databasens default værdi.

Fx vil et date felt i en MySQL database have default værdien 0000-00-00
(som egentlig er lidt forkert og burde vel være NULL, ligesom i andre
DBMS (MSSQL, PostgreSQL osv.)

Så metoderne kan være at
1: Fortælle PHP hvad default værdien er for feltet
2: Hente default værdien direkte fra databasen, altså noget ala
$sql = "DESCRIBE tabel";
$result = mysql_query($sql);
while ($myrow = mysql_fetch_array($result)) {
if ($myrow['Field'] == $gruppeinfo)
echo $gruppeinfo." har default værdien";
}

Selvfølgelig kender mange deres felts default værdi... men er der en
anden der har adgang til den, også gerne vil have en anden default værdi
(af en eller anden opskur grund) så ville en if(!is_null($felt)) bare
ikke virke mere, da feltet jo så ikke er null mere.

Kan du se hvad jeg mener? :)

gc (30-03-2007)
Kommentar
Fra : gc


Dato : 30-03-07 07:36

Det køre bare nu, Tak til alle.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste