我有一个选择查询的输出,如下所示
id price valid
1000368 69.95 1
1000369 69.94 0
1000370 69.95 0
现在在php中我试图在功能中传递id 1000369。只有当id为1000368的有效值= 1时,才能执行函数。如果它不是1那么它将抛出错误。因此,如果传递的id是1000370,它将检查1000369的有效值是否为1。
我怎么检查这个?我认为这在逻辑上是可行的,但我无法编码它我尝试使用foreach但最后它总是检查最后一条记录1000370,所以它抛出错误。
问候
答案 0 :(得分:3)
使用布尔变量:
<?php
$lastValid=false;
while($row = mysql_fetch_array($result))
{
if ($lastValid) {
myFunction();
}
$lastValid = $row['valid'];
}
?>
(原谅可能的错误,目前无法访问控制台。)
答案 1 :(得分:1)
如果我理解正确,您想检查以前的ID是否为valid
。
$prev['valid'] = 0;
foreach($input as $i){
if($prev['valid']){
// Execute function
}
$prev = $i;
}
答案 2 :(得分:0)
<?php
$sql = "SELECT * FROM tablename";
$qry = mysql_query($sql);
while($row = mysql_fetch_array($qry))
{
if ($row['valid'] == 1)
{
// do some actions
}
}
?>
答案 3 :(得分:0)
我真的非常推荐一些教程。这是基本的东西。
以下是如何申请特定记录:
//This is to inspect a specific record
$id = '1000369'; //**some specified value**
$sql = "SELECT * FROM data_tbl WHERE id = $id";
$data = mysql_fetch_assoc(mysql_query($sql));
$valid = $data['valid'];
if ($valid == 1)
//Do this
else
//Do that
以下是如何遍历所有记录并检查每个记录。
//This is to loop through all of it.
$sql = "SELECT * FROM data_tbl";
$res = mysql_query($sql);
$previous_row = null;
while ($row = mysql_fetch_assoc($res))
{
some_action($row, $previous_row);
$previous_row = $row; //At the end of the call the current row becomes the previous one. This way you can refer to it in the next iteration through the loop
}
function some_action($data, $previous_data)
{
if (!empty($previous_data) && $condition_is_met)
{
//Use previous data
$valid = $previous_data['valid'];
}
else
{
//Use data
$valid = $data['valid'];
}
if ($valid == 1)
{
//Do the valid thing
}
else
{
//Do the not valid thing
}
//Do whatever
}
以下是一些优秀教程的链接:
http://www.phpfreaks.com/tutorials
http://php.net/manual/en/tutorial.php