Tural Ali
Tural Ali

Reputation: 23270

Getting array from PHP function

My db table looks like that

enter image description here

I'm trying to get page title and content from this function

function page($current, $lang){
    global $db;
    $txt='txt_'.$lang;
    $title='title_'.$lang;
    $data=$db->query("SELECT '$txt', '$title' FROM pages WHERE `id`='$current'");
    $data=$data->fetch_array(MYSQLI_BOTH);
    return $data;
}

Then at the beginning of the index page getting array values

$data=page($id, $lang);

And using like this example

<title><?=$data[1]?></title>

But getting every time the same result title_en (en is my language variable.). What's wrong with my code?

Upvotes: 1

Views: 89

Answers (1)

Jason McCreary
Jason McCreary

Reputation: 72991

Don't single quote your fields. MySQL interprets this as a string.

$data=$db->query("SELECT $txt, $title FROM pages WHERE `id` = $current");

Alternatively you can use backticks in MySQL. But note that $current still shouldn't have them assuming it's an integer field.

$data=$db->query("SELECT `$txt`, `$title` FROM pages WHERE `id` = $current");

Upvotes: 6

Related Questions