Reputation: 157
I`m trying to echo a single string from mysql database. There are columns in database (en, es, de, it...) representing different languages and I want to select value from one row and from column with current language ($language="en", or $language="es"...). I have tried:
<?php
$result = mysqli_query($con, 'SELECT "' .$language. '" FROM page WHERE
title="findInstructor" LIMIT 1');
$row = mysqli_fetch_row($result);
print_r($row[0]);
?>
The problem is, I am getting on screen value of $language
variable, not a value from database. If I try it f.e. for english language, everything if fine:
$result = mysqli_query($con, 'SELECT en FROM page WHERE
title="findInstructor" LIMIT 1');
Or if I could do something like:
$result = mysqli_query($con, 'SELECT * FROM page WHERE
title="findInstructor" LIMIT 1');
....
print_r($row[$language]);
Thanks for an answer!
Upvotes: 1
Views: 156
Reputation: 7965
As shown in below code if you put variable name in double quote,it's consider it as a static value.
'SELECT "' .$language. '" FROM page WHERE
title="findInstructor" LIMIT 1'
So instead of this you have to try below code
'SELECT ' .$language. ' FROM page WHERE
title="findInstructor" LIMIT 1'
Hope this will help you.
Upvotes: 1
Reputation: 3354
Because wrap $language
with double quotes and SELECT
treat it as a string and not column name. Try this:
<?php
$result = mysqli_query($con, 'SELECT ' .$language. ' FROM page WHERE
title="findInstructor" LIMIT 1');
$row = mysqli_fetch_row($result);
print_r($row[0]);
?>
Upvotes: 4