/ 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
Variabel indeni variabel
Fra : Jesper Lützen


Dato : 31-01-07 13:59

Hejsa,

Hvad er der galt med denne kode:

$i=1;
while($i<=50){
   $question$i = $_POST["question$i"];
   $category$i = $_POST["category$i"];
$i++;
}

Jeg har x spørgsmål på en side, og de er navngivet "question1" ..
"question50", og nu vil jeg så hente variablerne ud ved at bruge $i,
men jeg får en "Parse error: parse error, unexpected T_VARIABLE
in ..." på de to linier. Fejlmeldingen forsvinder hvis jeg ændrer
$question$i til $question1.

Hvorledes henter man evt x variabler ud, hvis denne metode ikke er
funktionel?

På forhånd tak!

Venlig hilsen
Jesper Lützen


 
 
Martin Mouritzen (31-01-2007)
Kommentar
Fra : Martin Mouritzen


Dato : 31-01-07 14:07

On 31 Jan 2007 04:58:43 -0800, "Jesper Lützen"
<jesperlutzen@gmail.com> wrote:

>Hejsa,
>
>Hvad er der galt med denne kode:
>
>$i=1;
>while($i<=50){
>   $question$i = $_POST["question$i"];
>   $category$i = $_POST["category$i"];
>$i++;
>}

Det virker som en lidt underlig måde at gøre det på, hvorfor ikke
holde det i arrays?

Men hvis du ønsker præcis samme funktionalitet kan du rette det til:

$i=1;
while($i<=50){
   $name1 = "question".$i;
   $name2 = "category".$i;

   $$name1 = $_POST["question".$i];
   $$name2 = $_POST["category".$i];
   $i++;
}

Men jeg synes at du skal omskrive det til bare at bruge arrays, der er
ingen grund til alle de variabler, og det gør koden sværere at
gennemskue.

--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk

Mads Lie Jensen (31-01-2007)
Kommentar
Fra : Mads Lie Jensen


Dato : 31-01-07 14:14

On 31 Jan 2007 04:58:43 -0800, "Jesper Lützen" <jesperlutzen@gmail.com>
wrote:

>Hejsa,
>
>Hvad er der galt med denne kode:
>
>$i=1;
>while($i<=50){
>   $question$i = $_POST["question$i"];
>   $category$i = $_POST["category$i"];
>$i++;
>}


>
>Jeg har x spørgsmål på en side, og de er navngivet "question1" ..
>"question50", og nu vil jeg så hente variablerne ud ved at bruge $i,
>men jeg får en "Parse error: parse error, unexpected T_VARIABLE
>in ..." på de to linier. Fejlmeldingen forsvinder hvis jeg ændrer
>$question$i til $question1.
>
>Hvorledes henter man evt x variabler ud, hvis denne metode ikke er
>funktionel?

Brug
   ${'question' . $i} = $_POST["question$i"];

Men det var nok smartere at bruge en array, i stedet for at oprette 2 *
50 variabler:
   $question[$i] = $_POST["question$i"];

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
Gartneriet - http://www.gartneriet.dk/

Jesper Lützen (31-01-2007)
Kommentar
Fra : Jesper Lützen


Dato : 31-01-07 14:17

.... To hurtige svar...

Tusind tak skal i have - jeg må kaste mig over læsestoffet og sætte
mig ind i de arrays. 50 var blot en fiktiv grænse, som lige så vel
kunne være 50.000, så I har garanteret ret begge to!


Venlig hilsen


Jesper Lützen


Bertel Lund Hansen (31-01-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 31-01-07 14:23

Jesper Lützen skrev:

> Hvad er der galt med denne kode:

> $i=1;
> while($i<=50){
>    $question$i = $_POST["question$i"];
>    $category$i = $_POST["category$i"];
> $i++;
> }

$question er formodentlig udefineret, så der kommer til at stå:

   '1' = $_POST["question1"];

Der findes en metode i PHP til at lave det du prøver på, men det
er noget klamp. Du skal bruge arrays i stedet for. Men jeg vil
gerne vide hvad du prøver på. Vil du angive spørgsmålene ved
hjælp af 100 parametre i en URL eller hvad?

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

Jesper Lützen (31-01-2007)
Kommentar
Fra : Jesper Lützen


Dato : 31-01-07 15:21

> $question er formodentlig udefineret, så der kommer til at stå:
>
> '1' = $_POST["question1"];
>
> Der findes en metode i PHP til at lave det du prøver på, men det
> er noget klamp. Du skal bruge arrays i stedet for. Men jeg vil
> gerne vide hvad du prøver på. Vil du angive spørgsmålene ved
> hjælp af 100 parametre i en URL eller hvad?

Det jeg forsøgte på var, at man på en side kunne vælge hvor mange
spørgsmål til et spørgeskema man ville indtaste, på den næste side
blev antallet af input-felter vist, og på den 3. side blev inputtet
smidt i databasen. Jeg legede imidlertid med arrays efter forslag fra
de to andre, og resultatet blev som ønsket. Jeg opgav blot arrays for
et års tid siden i et andet regi, fordi jeg syntes indlæringskurven
var for stejl, men eftersom det nu er lykkedes mig at løse denne
opgave på et par timer, så må konklusionen være, at det var
lærematerialet, der var for stejlt sidste gang ;)

Men tak for dit input!


Bertel Lund Hansen (31-01-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 31-01-07 19:01

Jesper Lützen skrev:

> smidt i databasen. Jeg legede imidlertid med arrays efter forslag fra
> de to andre, og resultatet blev som ønsket.

Fint nok.

> Jeg opgav blot arrays for et års tid siden i et andet regi,
> fordi jeg syntes indlæringskurven var for stejl, men eftersom
> det nu er lykkedes mig at løse denne opgave på et par timer,
> så må konklusionen være, at det var lærematerialet, der var
> for stejlt sidste gang ;)

Arrays er helt uundværlige i programmering. PHP har nogle stærke
kommandoer til at behandle arrays, bl.a. sortering.

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

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