I want to be able to specify the table column am echoing .
Am getting blank when i try to print out just from the helper column
x
$query = $db->fetch("SELECT n.*, g.* FROM helper AS n LEFT JOIN getter AS g ON n.user_id= g.user_id WHERE n.user_id='{$id}' OR g.user_id='{$id}' ");
if($query !== ''){
foreach($query as $value){
$output .= $value['n.status'];
}
print $output;
}
Advertisement
Answer
Your problem is that both columns are called status
, so when the result array is formed the second status
value overwrites the first (since a PHP array can only have one value for a given associative key). You can work around that using column aliases:
$query = $db->fetch("SELECT n.*, g.*, n.status as n_status, g.status as g_status
FROM helper AS n
LEFT JOIN getter AS g ON n.user_id= g.user_id
WHERE n.user_id='{$id}' OR g.user_id='{$id}' ");
if($query !== ''){
foreach($query as $value){
$output .= $value['n_status'];
}
print $output;
}
Note you will have the same issue with your user_id
column (and possibly others). Generally it is better practice to enumerate the columns you want individually (rather than using *
) so that you can avoid this problem from the beginning.