Reputation: 25
table: config
+--------+---------+
| c_name | c_value |
+--------+---------+
| a | 1 |
| b | 2 |
| c | 1 |
+--------+---------+
i have two sql queries:
$first = mysql_fetch_array(mysql_query("SELECT c_value FROM config WHERE c_name = 'a' "));
$second = mysql_fetch_array(mysql_query("SELECT c_value FROM config WHERE c_name = 'b' "));
i have these codes:
echo $first["c_value"]; // output will be 1
echo $second["c_value"]; // output will be 2
Can i do same job with 1 sql query?
Upvotes: 2
Views: 925
Reputation: 72
First Option:
$result=mysql_query("SELECT c_value FROM config WHERE c_name in ('a','b') ");
while($row = mysql_fetch_array($result)){
echo $row['c_value'];
}
OutPUt
1
2
You can also use this(Without using loop):
$O_Value = mysql_fetch_array(mysql_query("SELECT A.c_value as first_Value, B.c_value as second_Value FROM config A join config B on B.c_name = 'b' and A.c_name = 'a' "));
echo $O_Value["first_Value"]; // *output will be 1*
echo $O_Value["second_Value"]; // *output will be 2*
Upvotes: 1
Reputation: 11369
SELECT c_name, c_value
FROM config
WHERE c_name IN('a', 'b');
while($row = mysql_fetch_assoc($result)){
echo $row['c_name'] . " = " . $row['c_value'] . "<br/>";
}
Output:
a = 1
b = 2
Upvotes: 2
Reputation: 292
And use mysql_fetch_assoc if you want associative array as a result.
Upvotes: 1
Reputation: 755
$result=mysql_query("SELECT c_value FROM config WHERE c_name = 'a' OR c_name='b' ");
while($row = mysql_fetch_array($result)){
echo $row['c_value'];
}
Upvotes: 4