Gå til innhold

Variabler og mysql


Anbefalte innlegg

Hei!

Jeg har et problem, Jeg har laget en side som spytter ut en hau med variabler.

$var1

$var2

$var3

$var4

osv

Og nå skal jeg få mysql til å lagre innholdet i variablene.

Slik trodde jeg det ville fungere:

while ($num <= '15') { 
       $vare = "vare" . $num; 
       if (!isset($vare)) { 
           break;
      }
      else{
        $result = mysql_query("insert into database SET
    vare = '$vare'");
      }
      $num++
 }

Men denne koden vil bare lagre "vare1, vare2, vare3" osv i databasen... ikke innholdet.

Jeg har også prøvd $$vare i mysql setningen (ikke veit jeg hva $$ betyr) men jeg har altså prøvd, og da ble det bare lagret "$vare1, $vare2, $vare3" osv.

Noen tips til emnet?

Lenke til kommentar
Videoannonse
Annonse

Forstår det slik at du henter ut en bunch med variable fra en side, i varierende antall?

 

Hvis du navngir alle dine <input> felt som en php array, eks:

<input name="var[]">

 

Så kan du siden hente ut en php array, $var, som vil inneholde alle elementene.

 

Merk at dette er en egenskap ved php, og ikke HTTP

Lenke til kommentar

Hei!

Takk for at du svarte så fort.

jeg har prøvd å bruke array før også, men får det ikke til å fungere slik jeg vil.

Er det slik du mener jeg skal gjøre det?

$myArray = array("$var");
 $result = mysql_query("insert into datebase SET
vare = '$myArray'");

 

Forstår det slik at du henter ut en bunch med variable fra en side, i varierende antall?

Ja, det stemmer. Så vil det fungere å legge kode snutten i en while løkke? vil da $myarray hoppe fra [1] til [2] osv av seg selv?

Jeg har prøvd å lese litt om arrays på php.com uten å bli noe klokere på problemet mitt.

Lenke til kommentar
Tror jeg skjønner problemet her. Vil dette løse problemet kanskje? :
[code]
while ($num <= '15') {
      $temp = "vare" . $num;
      $vare = $$temp;   #denne her burde fikse det
      if (!isset($vare)) {
          break;
     }
     else{
       $result = mysql_query("insert into database SET
   vare = '$vare'");
     }
     $num++
}

[/code]
Lenke til kommentar

Idet du setter verdien av variabelen $vare, så vil den vel være satt uansett om den har innhold eller ikke, slik at isset($vare) alltid blir sann?

 

Jeg vil anbefale deg å se på var[] løsningen, altså å navngi <input> felt som en array og samle opp verdiene av denne automatisk i php scriptet

Lenke til kommentar
Idet du setter verdien av variabelen $vare, så vil den vel være satt uansett om den har innhold eller ikke, slik at isset($vare) alltid blir sann?

Ok. En liten justering må til:

bytt ut :

if (!isset($vare)) 

med

if($vare)

så skal det funke.

Har gjort slik før

Lenke til kommentar

Hei!

Her har det skjedd ting. Har vært borte i helga, så har desverre ikke fått svart før.

Neo har skjønt problemet, og tipper han også har løst det, men orker ikke å teste det akkurat nå.

Klarte å løse problemet selv ved å bruke

$vare = ${"vare$num"};

Unasett, Takk for all hjelpen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...