2016-04-11 3 views
1

У меня есть запрос на запрос, и я хочу его заменить, но я не знаю, что это возможно. Моя база данных выглядит следующим образом: вызовыМогу ли я заменить несколько запросов на один

enter image description here

Моя база данных:

$minbet = $mysql->query('SELECT `value` FROM `jackpot1_info` WHERE `name`="minbet"')->fetch_assoc(); 
$minbet = $minbet['value']; 

$maxbet = $mysql->query('SELECT `value` FROM `jackpot1_info` WHERE `name`="maxbet"')->fetch_assoc(); 
$maxbet = $maxbet['value']; 

$maxitems = $mysql->query('SELECT `value` FROM `jackpot1_info` WHERE `name`="maxitems"')->fetch_assoc(); 
$maxitems = $maxitems['value']; 

$maxitemsinpot = $mysql->query('SELECT `value` FROM `jackpot1_info` WHERE `name`="maxitemsinpot"')->fetch_assoc(); 
$maxitemsinpot = $maxitemsinpot['value']; 

ответ

2

Это просто, просто выберите name и value в одном запросе, и вы будете иметь каждый name и value пара в отдельной строке:

$select = $mysql->query(' 
    SELECT `name`, `value` 
    FROM `jackpot1_info` 
    WHERE `name` IN ("minbet","maxbet","maxitemsinpot","maxitems") 
'); 

while ($result = $mysql->fetch_assoc()) 
{ 
    var_dump($result); 
} 

Вывод будет выглядеть так:

array(2) { 
    'name' => 
    string(12884901894) "minbet" 
    'value' => 
    int(123) 
} 

array(2) { 
    'name' => 
    string(12884901894) "maxbet" 
    'value' => 
    int(456) 
} 

... 

Я уверен, что вы можете сделать все остальное.

2

Использование IN вместо = для одного запроса.

$select = $mysql->query('SELECT name,value FROM `jackpot1_info` WHERE `name` IN ("minbet","maxbet","maxitemsinpot","maxitems")'); 
$result = $mysql->fetch_assoc(); 
+0

Im get error 'Undefined index' – Reason

+1

@RuchishParikh Это как-то не имеет смысла. Вы выбираете столбец 'value', но вы пытаетесь прочитать столбец' maxbet' вне результатов (чего явно нет). –

+0

Тем не менее, используя ваш код, он не сможет отличить, какое значение принадлежит имени, он получит только кучу значений. Мне лично интересно, почему этот ответ имеет два перевыбора, поскольку первая версия не работает вообще, а вторая версия не помогает решить проблему OP. –