0

フィールドA、B、C、D、Eを持つデータベーステーブル(furcodes)があります。このコードを使用して、Joomlaサイトでコードシステムを利用します。

    <?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=使用済み、1回の使用すべてのコードに対して)、次のようなifを作成します。

    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;
}
?>
4

2 に答える 2

3

カウントを確認する必要はまったくありません。列 E に対して通常の選択を行うだけです。

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

行が返されない場合は、コードがテーブルに存在しなかったことがわかります。行が返された場合は、E の戻り値をチェックしてステータスを確認できます。

于 2013-01-11T18:30:20.907 に答える
0

変化する

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

$query = "SELECT COUNT(`B`) FROM `furcodes` WHERE `B` = '$redeem_code'";
于 2013-01-11T18:27:44.310 に答える