2013-01-11 48 views
0

我有一個數據庫表(furcodes)與字段A,B,C,d,E 我使用此代碼來創建一個Joomla網站兌換代碼系統:PHP查詢從1和表2個字段

<?php 
$redeem_code = JRequest::getString('redeem_code', '', 'post'); 
$db =& JFactory::getDBO(); 
$query = " 
    SELECT COUNT(`B`) 
     FROM `furcodes` 
     WHERE `B` = '$redeem_code' ; 
"; 
$db->setQuery($query); 
$count = $db->loadResult(); 
if ($count) { 

    $mainframe =& JFactory::getApplication(); 
    $mainframe->enqueuemessage('You have succesfully redeemed this fur code'); 
    return false; 
} else { 
    $mainframe =& JFactory::getApplication(); 
    $mainframe->enqueueMessage(JText::_('Invalid code. Please check and try again.'), 'error'); 
    return false; 
} 
?> 

我使用計數來檢查這個代碼是否存在於數據庫中,但是我還需要從列「E」中得到表示這個代碼是否曾經使用過的字段(值0 =未使用或使用1 = ,每個代碼一個使用),並創建一個如果是這樣的:

if $used == 1 
echo "This code has been used" 

任何幫助嗎?


我使用的最終代碼,它可能會幫助別人。

<?php 
$your_fur_code = JRequest::getString('fur_code', '', 'post'); 
$db =& JFactory::getDBO(); 
$query = "SELECT `E` FROM `furcodes` WHERE `B` = '$your_fur_code'"; 
$db->setQuery($query); 
$code_used = $db->loadResult(); 
if ($code_used == "1") { 
    $mainframe =& JFactory::getApplication(); 
    $mainframe->enqueueMessage(JText::_('The code has already been used.'), 'error'); 
    return false; 
} if ($code_used == "0") { 
    $mainframe =& JFactory::getApplication(); 
    $mainframe->enqueuemessage('You have succesfully redeemed this code'); 
    return false; 
} else { 
    $mainframe =& JFactory::getApplication(); 
    $mainframe->enqueueMessage(JText::_('Invalid code. Please check and try again.'), 'error'); 
    return false; 
} 
?> 

回答

3

沒有必要檢查計數可言,只是做一個常規選擇的E列

SELECT `E` FROM `furcodes` WHERE `B` = '$redeem_code' 

如果沒有行被返回,你知道代碼不存在噸表中。如果返回一行,則可以檢查E的返回值以查看狀態。

+0

沒想到那...感謝隊友 – John

0

變化

$query = "SELECT COUNT(`B`) FROM `furcodes` WHERE `B` = '$redeem_code' ;"; 

TO

$query = "SELECT COUNT(`B`) FROM `furcodes` WHERE `B` = '$redeem_code'"; 
+0

它也工作過,但謝謝你的隊友它幫助 – John