Там должен быть более простой способ .. извлечение данных из MySQL - PullRequest
1 голос
/ 13 ноября 2011

Мне нужно извлечь 3 значения из таблицы и присвоить каждое из них переменной, для которой каждое значение основано на столбцах, типе и идентификаторе

$ht_live_query = mysql_query("SELECT htcode FROM coupon WHERE pid='$pid' AND type='L'");
$ht_live_result = mysql_fetch_array($ht_live_query);
$htCODE_Live = $ht_live_result['htcode'];

Вы видите, что яприсвоение нужного значения переменной $ htL

$ht_General_query = mysql_query("SELECT htcode FROM coupon WHERE pid='$pid' AND type='G'");
$ht_General_result = mysql_fetch_array($ht_General_query);
$htCODE_General = $ht_General_result['htcode'];

$ht_Reward_query = mysql_query("SELECT htcode FROM coupon WHERE pid='$pid' AND type='R'");
$ht_Reward_result = mysql_fetch_array($ht_Reward_query);
$htCODE_Reward = $ht_Reward_result ['htcode'];

Я знаю, что делаю это нелегко, но не могу понять, как выполнить цикл foreach или while для достижения желаемых результатов.

Ответы [ 2 ]

3 голосов
/ 13 ноября 2011

Используйте предложение IN() как IN('L','G','R').

$htrrquery = mysql_query("SELECT htcode, type FROM coupon WHERE pid='$pid' AND type IN('L','G','R')");

При получении результатов вы можете проверить значение и при необходимости сделать что-то другое.

while ($row = mysql_fecth_array($htrrquery)) {
  echo = $row['htcode'];
  switch ($row['type']) {
    case 'L': $htL = $row['htcode']; break;
    case 'G': $htG = $row['htcode']; break;
    case 'R': $htR = $row['htcode']; break;
  }
}
0 голосов
/ 13 ноября 2011
$htlquery = mysql_query("SELECT htcode FROM coupon WHERE pid='$pid' 
                         AND type IN 'G','L','R') ORDER BY type");
while($row=mysql_fetch_array($htlquery)) {  // EDIT: added loop
    $return[] = $row[0];
}

list($htG, $htL, $htR)  = $return;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...