Using Variable in MySQL query

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
nita
Forum Commoner
Posts: 39
Joined: Wed May 02, 2007 5:49 am

Using Variable in MySQL query

Post by nita »

Hi everone.

Having a problem with getting the values from a database.

What im trying to do is:
I use variable 'varname' from packaging_items table (values are coressponding to the names of columns in packaging table ... pack01, pack02 .. and so on).
But in query result1 instead of getting the value of (pack01, pack02 ..) i get the names of columns (pack01, pack02 ..)
Here is my short code: (ofcourse there is more to it, but this bit is most important)

Code: Select all

$result = mysql_query("SELECT * FROM packaging_items") or die(mysql_error());  
while($row = mysql_fetch_array($result)) {  
    $data1 = $row['varname']; 
    $name = $row['name']; 
    $price = $row['price']; 

$result1=mysql_query("SELECT `$data1` FROM packaging WHERE orderno='$orderno' LIMIT 1") or die(mysql_error()); 
while($row1 = mysql_fetch_array( $result1 )) { 
    if ( $data1 == '' ) {} else { 
    echo" <tr><td>$name</td><td>$data1</td><td>&pound;$price</td><tr>"; } 
} 
}  
Im stuck here, tried some other options .. and only get worst..

What do i wrong .. if someone can help will be nice.

Thank you in advance!
nita
Forum Commoner
Posts: 39
Joined: Wed May 02, 2007 5:49 am

Re: Using Variable in MySQL query

Post by nita »

for example when i hardcode the query, results are ok and that is what i want to achive here

$result1=mysql_query("SELECT pack01 FROM packaging WHERE orderno='$orderno' LIMIT 1") or die(mysql_error());
while($row1 = mysql_fetch_array( $result1 )) {
$pack01 = $row1['pack01'];
echo "$pack01";
}
nita
Forum Commoner
Posts: 39
Joined: Wed May 02, 2007 5:49 am

Re: Using Variable in MySQL query

Post by nita »

got it fixed ...

$result1=mysql_query("SELECT ".$data1." as data1 FROM packaging WHERE orderno='$orderno' LIMIT 1") or die(mysql_error());
while($row1 = mysql_fetch_array( $result1 )) {
$data = $row1['data1'];
if ( $data == '' ) {} else { echo" <tr><td>$name</td><td>$data</td><td>&pound;$price</td><tr>"; }

}
Post Reply