Avatar billede christian-BN Praktikant
18. marts 2010 - 20:35 Der er 8 kommentarer og
1 løsning

udskrive enkelt array fra multidimensionelt array

Hej, jeg roder lidt med PHP som ikke vil lege med mig..

får gennem en formular nogle inputs som udmunder i et array, problemet er at oplysningerne skal gemmes i mySQL, og nogle af inputsene bliver som et array i array'et.. mit output er

Array
(
    [quizName] => TestQuiz
    [year] => 1987
    [difset] => 2
    [catvalg] => Array
        (
            [0] => Gamle stjerner
            [1] => Nye stjerner
            [2] => Blandede
        )

    [konvalg] => Array
        (
            [0] => Humor
            [1] => Action
            [2] => Romantik
        )

)

Som det er lige nu har jeg følgende kode som jeg bruger inden den skal sættes ind i mySQL'en

$quizname = mysql_real_escape_string($_POST['quizName']);
$year = mysql_real_escape_string($_POST['year']);
$diff = mysql_real_escape_string($_POST['difset']);
$category = $_POST['catvalg']; // <<- Output her bliver Array.

Yderligere har jeg forsøgt med $_POST['catvalg'][''] som intet udskriver, men $_POST['catvalg'][0] giver "Gamle stjerner"

Tak for hjælpen :)
Avatar billede preppydude Nybegynder
18. marts 2010 - 21:45 #1
Er det ikke bare at lave en funktion der "looper" igennem dit array og giver dig en string?
Avatar billede christian-BN Praktikant
18. marts 2010 - 22:10 #2
Tjoo.. så du tænker på noget foreach af en art?? Du må meget gerne komme med et eksempel for jeg er ikke sikker på hvordan det skal køres.

Jeg vil egentlig gerne beholde det som et array eller lign, da både catvalg og convalg kan indeholde imellem 1-90 værdier alt efter hvad man indtaster..

Håber det giver mening :)
Avatar billede preppydude Nybegynder
18. marts 2010 - 22:14 #3
<?php
define('ARRAY_SPLIT_CHAR', 0x2c);
function strToArray($str) {
  return explode(ARRAY_SPLIT_CHAR, $str);
}
function arrayToStr($arr) {
  return implode(ARRAY_SPLIT_CHAR, $arr);
}

$categories = arrayToStr($_POST['catvalg']);
?>
Avatar billede christian-BN Praktikant
18. marts 2010 - 22:21 #4
jeg får et output der hedder Humor44Action44Romantic..

Hvordan undgår jeg 44 imellem ordene ? Kan selvfølgelig altid bruge replace, men måske der er en nem måde at undgå det på?
Avatar billede preppydude Nybegynder
18. marts 2010 - 22:26 #5
Ah, det min fejl. Du skal bruge chr(0x2c), selvfølgelig.
Avatar billede christian-BN Praktikant
18. marts 2010 - 22:32 #6
Det virker jo perfekt.. lig et svar så får du points
Avatar billede preppydude Nybegynder
18. marts 2010 - 22:34 #7
Her :)
Avatar billede preppydude Nybegynder
18. marts 2010 - 22:36 #8
... husk at bruge *_real_escape_string() på den string du får tilbage :)
Avatar billede christian-BN Praktikant
18. marts 2010 - 22:38 #9
Super, det skal jeg huske :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester