我的想法是在网站上为新用户制作工具提示.他们将浏览工具提示,每次完成工具提示时,它都会插入到DB中.
但是我有一个按钮skip all.所以我的想法是将所有未完成的提醒工具提示插入带有for循环的数据库中.
因此,如果没有点击工具提示,它就可以工作.因此,工具提示将等于,1因为通过$data等于0.但是,如果工具提示在通过时等于1 $data则获得a +1并且for loop似乎不会发布任何内容database
$NumberOfTooltips = 2;
(int)$data->tooltipLastID = ((int)$data->tooltipLastID === 0) ? 1 : (int)$data->tooltipLastID + 1;
for ($x = (int)$data->tooltipLastID; $x <= $NumberOfTooltips; $x++) {
$query = "";
$query = "INSERT INTO tooltips ";
$query .= "(tooltip_id, inserted) VALUES ($x, NOW())";
database::query($query);
$this->id = database::getInsertID();
}
Run Code Online (Sandbox Code Playgroud)
在断开的循环上,值为(int)$data->tooltipLastID2
是因为(int)$data->tooltipLastID已经等于$NumberOfTooltips?
这些并没有直接解决问题,但它们确实可以帮助您澄清数据并消除任何次要错误和错误.还指出一些最佳(或至少,更好)的做法.
$x是一个懒惰而且定义不明确的柜台.更喜欢使用诸如的描述性的特征$tooltipCounter
$data->tooltipLastID不应该从 1 开始 ; 使用与PHP /编程中的每个其他整数系统相同的语法,从零开始.如果你需要一个,那么+1只在需要时添加(VALUES (".$x+1.")).
$NumberOfTooltips = 2; 数字2可能不足以进行充分的测试.
var_dump($data->tooltipLastID)并var_dump($NumberOfTooltips)检查两个值是否符合您的预期.
重写测试代码以从代码中取出变量,以便您可以检查数据库连接是否正常工作(例如,如果您尝试错误地插入字符串字段类型)
$query = ""; 是多余的.
您不应该一直键入转换(int)对象变量($data->whatever),而是在设置它们时键入它们.
此外,通过添加+1到变量PHP,int无论如何都会自动重新转换变量.
检查您$data->tooltipLastID是否可公开访问/写入.
你用$this; 那你上哪堂课?你自己引用数据类吗?
银行假期只有一天.
inserted数据库列在插入时自动设置为更好.您可以使用此SQL来更改当前表:
ALTER TABLE <yourTable> MODIFY COLUMN inserted timestamp DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |