taffarel
taffarel

Reputation: 25

selecting a value from mysql table with 1 query

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

Answers (5)

Mosman
Mosman

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

DRiFTy
DRiFTy

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

dexter.ba
dexter.ba

Reputation: 292

And use mysql_fetch_assoc if you want associative array as a result.

Upvotes: 1

johnny
johnny

Reputation: 19755

SELECT c_value 
FROM config 
WHERE c_name IN ('a', 'b')

Upvotes: 6

Aman Agarwal
Aman Agarwal

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

Related Questions