如果$number
是1
,我如何包含一个检查,以使用默认的Number
列199
更新INFO
表,但如果$number
是2
,以使用Number
221
而不是199
更新INFO
表?
基本上我只需要添加199或221的检查和更新,所以请告诉我如何做到这一点?谢谢
$number_rows = $db->doQuery('SELECT Num FROM Char WHERE ? IN(CharNum1, CharNum2, CharNum3)', $char);
$row = $db->doRead();
$number = intval($row['Num']);
if ($number_rows == -1)
{
$db->GetError(__file__, __line__);
$this->doError(Template::GetLangVar('DBERROR'));
return;
}
else if ($number_rows == 0)
{
$this->content = Template::Load('error', array('error_message' => Template::GetLangVar('No_Rows')));
return;
}
$dt = $db->doQuery('SELECT TOP 1 LAINO, DT FROM LOGG WHERE Char = ? ORDER BY DT DESC', $char);
$row = $db->doRead();
if ((intval($row['DT']) + 600) <= time() || !$dt)
{
$this->database[GAB]->doQuery('INSERT INTO Laeima (UserID) VALUES (?)', $char;
$this->database[GAB]->doQuery('INSERT INTO Smotka (Pofka,Motka,Rebka) VALUES (?,?,?)', $_SESSION['Acc'], $char, time());
sleep(6);
$this->database[GAB]->doQuery('UPDATE INFO SET Number = ? WHERE User = ?', $numcode, $char);
$this->content = Template::Load('error', array('error_message' => Template::GetLangVar('Success')));
}
else
{
$this->content = Template::Load('error', array('error_message' => Template::GetLangVar('FAIL')));
}
我使用的是MSSQL Server 2005,仅举一例:)
根据您的评论,您似乎缺少的一条信息是,您可以随心所欲地嵌套if
语句:
// ... some code ...
if ( $some_condition ) {
// ... some conditional code ...
if ( $some_other_condition ) {
// ... some code to run only when both conditions are true ...
} else {
// ... some code to run when one condition is true but the other false ...
}
// ... some more code ...
} else {
// ... what to do if the outer condition is false ...
}
// ... etc ...
所以在你的情况下,最简单的方法就是走这条线。。。
$this->database[GAB]->doQuery('UPDATE INFO SET Number = 199 WHERE User = ?', $char);
并将其放入具有else
中相同行的不同版本的适当if
中。
或者,更优雅的是,您可以为使用if ... else
块定义的"Number"定义一个变量,并使用它来代替查询中的硬编码199。
注意,我故意避免在这里给出最终代码,因为我认为如果你不想在不了解我的版本的情况下复制和粘贴我的版本,你更有可能了解未来该做什么。