2013-01-11 51 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