Avatar billede bing89 Nybegynder
18. september 2013 - 15:36 Der er 4 kommentarer og
1 løsning

Få en string som variable

Jeg vil lave en fleksibel menu, så jeg i fremtiden kun får brug for at ændre tabelnavn & rækkenavne.

Men da jeg ikke ved hvad der kommer ind, ved jeg heller ikke hvilke variabler jeg får brug for. Derfor har jeg brug for at få ændret en string til en variabel, så den kan bruges til databaseudtræk..

Eks:

        $tablename = "vovidaMenu";
        $tablerows = "id, parent_id, menuName";
       
        function string_replace($stringreplace){
        $replace = str_replace (' ', '', $stringreplace);
        $replace = str_replace (',', ' ', $replace);
        $replace_array = explode(' ', $replace);
        return $replace_array;
        }

$menu_string_replace = string_replace($menutablerows);
'$' . implode(', $', $menu_string_replace) .

Problemet er bare at det ikke bliver til en variable..
Avatar billede bing89 Nybegynder
18. september 2013 - 16:01 #1
$replace = str_replace (',', ' ', $replace); <- Den skal selvfølgelig slettes da den ikke giver nogen mening.
Avatar billede michael_stim Ekspert
18. september 2013 - 16:02 #2
Kan du ikke bruge variable variables her:

$foo = "Hello, world!";
$bar = "foo";
echo $$bar; // output Hello, world!
Avatar billede bing89 Nybegynder
18. september 2013 - 17:39 #3
Det acceptere den heller ikke nej :)

Min måde at kalde databasen på :

        if($menu = $con->prepare("SELECT $menutablerows FROM  $menutablename WHERE 1 ")){

        $menu->execute();
        $menu->bind_result($$bar);
        while($menu->fetch()){
        }
        $menu->close();
        }

Fejl:
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
Avatar billede bing89 Nybegynder
18. september 2013 - 17:47 #4
Hele min kode lige nu:
        $tablename = "vovidaMenu";
        $tablerows = "id, parent_id, menuName";
       
        function string_to_array($stringreplace){
        $replace = str_replace (' ', '', $stringreplace);
        $replace = str_replace (',', ' ', $replace);
        $replace_array = explode(' ', $replace);
        return $replace_array;
        }     
       
        function get_menu($menutablename, $menutablerows){
        include 'connect.sqli.php';
        $menu_get_array = string_to_array($menutablerows);
      echo $menu_to_variable = '$' . implode(' , $', $menu_get_array);
        if($menu = $objCon->prepare("SELECT $menutablerows FROM $menutablename WHERE 1 ")){
           
        $menu->execute();
        $menu->bind_result($menu_to_variable);
        while($menu->fetch()){
        }
        $menu->close();
        }

        }
        echo get_menu($tablename, $tablerows);

$menu_to_variable = '$' . implode(' , $', $menu_get_array) UDSKRIVER: $id , $parent_id , $menuName .

Men det bliver bare ikke til variabler.
Avatar billede bing89 Nybegynder
20. september 2013 - 20:01 #5
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
Kurser inden for grundlæggende programmering

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



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows