PHP 在 while 循环之外获取变量

编程入门 行业动态 更新时间:2024-10-24 14:24:01
本文介绍了PHP 在 while 循环之外获取变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

早些时候我发布了一个关于从循环中获取单个常量值并在循环外使用它的问题(参考:问题).现在我面临另一个while循环的另一个问题.它是这样的:我有一个疑问:

earlier i posted a question about getting a single constant value from a loop and use it outside of the loop (reference : Question). now i'm facing another problem with another while loop. it goes like this: i have a query:

$sql = "
        SELECT alarms.id, alarms.date, clients.name, clients.number, alarms.controller, 
        alarmstype.type, alarms.alarmstatus, alarms.starttime, alarms.endtime
        FROM alarms
        INNER JOIN clients ON alarms.clientid = clients.id 
        INNER JOIN alarmstype ON alarms.typeid = alarmstype.id
        WHERE alarms.alarmstatus = 'ON' ORDER BY alarms.date ASC";
$result = mysql_query($sql);

并且对于每一行,我都在 while 循环中分配了一个按钮:

and for each row i have assinged a button in the while loop:

      while ($row = mysql_fetch_array($result)) {
      print "<tr>
      <td>" . $row['date'] . "</td>
      <td>" . $row['number'] . " | " . $row['name'] . "</td>
<td>" . $row['controller'] . "</td>
    <td>" . $row['type'] . "</td>
    <td style='color: red'>
        <select name = 'statusupdate' style='font-size:10px;'>
          <option> " . $row['alarmstatus'] . " </option>
            <option> OFF </option>
        </select>
      </td>
            <td>" . $row['starttime'] . "</td>
            <td>" . $row['endtime'] . "</td>
            <td><input type='submit' name='delete' value='delete' /></td>

到目前为止一切顺利.行显示良好,按钮在那里.(所有的 while 循环都在一个表单标签中,所以输入很酷.反正.我想做这样的事情:

so far so good. The rows are displayed fine and the button's there. (all of the while loop is in a form tag so inputs are cool. any way. i want to make something like this:

 }
    if (isset($_POST['delete'])) {
      delete_alarm_from_database($alarmid)
    }

函数是这样的:

function delete_alarm_from_database($id) {
  //find alarm by id and delete:
  $sql = "SELECT * FROM alarms WHERE id = " . $id;
  $result = mysql_result($sql);
  if (!$result) {
    print "couldn't find record.";
  }
  //delete record from database:
  else {
    $sql = "DELETE FROM alarms WHERE id = " . $id;
    $result = mysql_result($sql);
  }
}

我的问题是这样的:每行都有一个 id,但将其设置为变量将始终覆盖,直到他将循环到达的最后一个 id 放入变量中.(意思是每行的每个删除按钮都会简单地删除每个页面加载的最后一个 id)

my problem goes like this: each row has an id but setting it as a variable will always overwrite until he puts in the variable the last id the loop reached. (meaning every delete button of each row will simply delete the last id each page load)

问题是这样的.我怎样才能让每个删除按钮识别它的行 ID?

the question is like this. how can i make each delete button recognize it's row id?

提前致谢 - 干杯.

推荐答案

我建议您稍微改变一下流程.将删除按钮更改为复选框,并允许用户一次删除多个.

I suggest changing your process up a bit. Change the delete buttons to check boxes and allow the user to delete more than one at a time.

改变

<td><input type='submit' name='delete' value='delete' /></td>

<td><input type='checkbox' name='ids_to_delete[]' value='<?php echo $row['id']; ?>' /></td>

然后在表格末尾添加一个新的Delete按钮

Then add a new Delete button at the end of the table

<input type='submit' name='delete' value='Delete selected rows' />

现在更改您的 PHP 以处理一组值

Change your PHP to handle an array of values now

if (isset($_POST['ids_to_delete']) && count($_POST['ids_to_delete']) > 0) {
    foreach($_POST['ids_to_delete'] as $alarmid) {
        delete_alarm_from_database($alarmid)
    }
}

甚至更好 - 更改您的 delete_alarm_from_database 函数以处理数组并一次性删除它们.

or even better - change your delete_alarm_from_database function to handle an array and delete them all at once.

这篇关于PHP 在 while 循环之外获取变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-26 03:27:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1128556.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!