PHP(PHP:Hypertext Preprocessor)是一种广泛使用的,高级,动态,面向对象和解释的脚本语言,主要用于服务器端Web开发。
按第二级键降序对多维数组进行排序,然后按日历顺序对第三级键(月份名称)进行排序
我有很多文件夹,我使用 DirectoryIterator 将它们放入多维数组中。结果是这样的 数组:10 [▼ “SomeTitle” => 数组:2 [▼ 2...
我需要动态组成一个具有如下键的数组: 1.1.2 2.1.3 2.1.13 撰写后,我需要按键对数据进行排序,但得到的结果与所需的不同: $Vals = 数组( “1.1.2&qu...
Javascript: var a=209348540618090 | 0;//-1050290838 PHP: $a=209348540618090|0;//209348540618090 $a=(209348540618090 & 0xffffffff) | 0; //3244676458 为什么按位运算的结果是...
数组按具有多级数字的键排序(1.1.2,2.1.3 ...)
我需要动态组成一个具有如下键的数组: 1.1.2 2.1.3 2.1.13 撰写后,我需要按键对数据进行排序,但得到的结果与所需的不同: $Vals=array("1.1.2"=>"
我必须按键对多维数组进行排序,我需要一些建议如何做到这一点。 我尝试使用 ksort() 和其他 php 内置函数,但它们都没有帮助我。 这是我的数组,其中...
我有一个如下所示的数组: 数组(3){ [“2012 年秋季季度”]=> array(2) { [20121018]=> 数组(1) { [“议程”] =>字符串(55)“Fall_2012/Agenda_201210...
我有这个数组: 大批 ( [0] => 数组 ( [千瓦] => 46 [anzahl_betten] => 100 ) [1] => 数组 ( [千瓦] => 47 ...
我预料到了这个: $f[14][5] = 数组(''); $f[13][1] = 数组(''); $f[13][3] = 数组(''); $f[13][2] = 数组(''); $f[14][1] = 数组(''); $f[13][2] = 数组(''); $f[14][2] = 数组(''); $f[14][4] = 数组('...
使用 contentEditable 属性使用 JavaScript 编辑表格
编辑数据并单击保存更改按钮后,屏幕中的数据发生更改,但数据库中的数据并未更新 编辑数据并单击保存更改按钮后,屏幕中的数据发生更改,但数据库中并未更新 <?php $con = mysqli_connect("localhost", "root", "", "myDB"); if (!$con) { die("Connection failed: " . mysqli_connect_error()); } if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['data'])) { $data = json_decode($_POST['data'], true); foreach ($data as $row) { $vegName = htmlspecialchars($row['vegName']); $price = htmlspecialchars($row['price']); $isnew = $row['isnew']; $id = intval($row['id']); if ($isnew === 'true') { $query = "INSERT INTO priceList (vegetable, price) VALUES (?, ?)"; $stmt = mysqli_prepare($con, $query); if (!$stmt) { echo "Prepare failed: (" . mysqli_error($con) . ")"; continue; } mysqli_stmt_bind_param($stmt, "ss", $vegName, $price); } else { $query = "UPDATE priceList SET vegetable = ?, price = ? WHERE id = ?"; $stmt = mysqli_prepare($con, $query); if (!$stmt) { echo "Prepare failed: (" . mysqli_error($con) . ")"; continue; } mysqli_stmt_bind_param($stmt, "ssi", $vegName, $price, $id); } if (!mysqli_stmt_execute($stmt)) { echo "Execute failed: (" . mysqli_stmt_error($stmt) . ")"; } else { echo "Changes saved for $vegName!"; } mysqli_stmt_close($stmt); } exit; } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vegetable Price List</title> <style> table, th, td { border: 1px solid black; border-collapse: collapse; padding: 10px; text-align: left; } </style> </head> <body style="background-color:#FAEBD7"> <div> <h1>Vegetable Price List</h1> <table id="vegTable"> <tr> <th>ID</th> <th>Vegetable</th> <th>Price</th> </tr> <?php $sql = "SELECT vegetable, price, id FROM priceList"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_assoc($result)) { echo "<tr data-isnew='false'> <td contenteditable='true'>" . htmlspecialchars($row["id"]) . "</td> <td contenteditable='true' data-vegname='" . htmlspecialchars($row["vegetable"]) . "'>" . htmlspecialchars($row["vegetable"]) . "</td> <td contenteditable='true'>" . htmlspecialchars($row["price"]) . "</td> </tr>"; } } else { echo "<tr><td colspan='3'>No vegetables found.</td></tr>"; } ?> </table> <button type="button" onclick="saveChanges()">Save Changes</button> <button type="button" onclick="addRow()">Add Vegetable</button> <script> function saveChanges() { var table = document.getElementById('vegTable'); var rows = table.getElementsByTagName('tr'); var data = []; for (var i = 1; i < rows.length; i++) { var vegName = rows[i].cells[1].getAttribute('data-vegname') || rows[i].cells[1].innerText; var price = rows[i].cells[2].innerText; var id = rows[i].cells[0].innerText; var isnew = rows[i].getAttribute('data-isnew') === 'true'; data.push({ vegName: vegName, price: price, isnew: isnew, id: id }); } console.log(JSON.stringify(data)); var xhr = new XMLHttpRequest(); xhr.open('POST', "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>", true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = function () { alert(xhr.responseText); }; xhr.send('data=' + JSON.stringify(data)); } function addRow() { var table = document.getElementById('vegTable'); var newRow = document.createElement("tr"); newRow.setAttribute('data-isnew', 'true'); var idCell = document.createElement('td'); idCell.textContent = ""; newRow.appendChild(idCell); var vegCell = document.createElement('td'); vegCell.contentEditable = "true"; vegCell.textContent = ""; newRow.appendChild(vegCell); var priceCell = document.createElement("td"); priceCell.contentEditable = "true"; priceCell.textContent = ""; newRow.appendChild(priceCell); table.appendChild(newRow); } </script> </div> </body> </html> <?php mysqli_close($con); ?> 我试图创建一个用户友好的可编辑蔬菜管理系统,但失败了。问题在于数据库,因为一旦编辑表并按下保存更改按钮,它就不会更新。 您好,我发现您的大部分代码都有效,如果表中已有蔬菜,您可以更新现有蔬菜的价格,但您的代码中有一个错误,该错误会阻止添加新蔬菜,我认为这可能是您的问题问什么? 当您添加新蔬菜时它没有保存到数据库的原因是因为 PHP 中的这一行 if ($isnew === 'true') { 这是因为您使用的是 === 并且它正在进行字面比较,这意味着它会检查 $isnew 是否是文本为“true”的字符串。 $isnew 是一个布尔值,因此返回 false。 如果您更改代码,使其与布尔值进行字面比较,如下所示: if ($isnew === true) { // notice the ' have been removed 它有效,您可以将新蔬菜保存到数据库中。 虽然此解决方案允许您将新蔬菜保存到数据库中,但在不刷新页面的情况下更新新添加的蔬菜还有一段路要走。这是因为在数据库中创建新蔬菜时,表格中没有填充 ID。此外,如果蔬菜是新的,并且您多次单击“保存更改”按钮,则会多次添加蔬菜。
我想做的是两个合并两个数组,但是这种两个数组是不同的: 大批 ( [0] => 数组 ( [南] => 60 [悲伤] => 数组 ...
我知道一些在 PHP 中重置变量的方法。 问题是我不知道到底有什么区别 他们谁更快,所以我在这里问...... 之间有什么区别: ...
方程模式: ax^4+bx^3+cx^2+dx+e=0 求解器代码: 方程模式: ax^4+bx^3+cx^2+dx+e=0 求解器代码: <?php function ferrariQuartic($a, $b, $c, $d, $e) { // Normalize the coefficients if ($a == 0) { throw new Exception("Coefficient 'a' cannot be zero for a quartic equation."); } // Step 1: Normalize the equation $b /= $a; $c /= $a; $d /= $a; $e /= $a; // Step 2: Substitute x = y - (b / 4) $p = $c - (3 * $b**2) / 8; $q = ($b * $d) / 2 - ($b**3) / 8 + $e; // Step 3: Solve y^4 + p*y^2 + q = 0 as a quadratic in y^2 $D = $p**2 / 4 - $q; // Discriminant if ($D < 0) { // throw new Exception("The quartic equation has complex roots."); } // Roots for y^2 $y2_1 = -$p / 2 + sqrt($D); $y2_2 = -$p / 2 - sqrt($D); // Step 4: Solve for y $y1 = sqrt($y2_1); $y2 = sqrt($y2_2); // Step 5: Back substitute to find x $roots = []; $roots[] = $y1 - ($b / 4); $roots[] = -$y1 - ($b / 4); $roots[] = $y2 - ($b / 4); $roots[] = -$y2 - ($b / 4); // Return the roots return array_filter($roots, function($root) { return is_finite($root); // Filter out any infinite or NaN values }); } // Working with small coefficients $a = 1; // Coefficient of x^4 $b = 0; // Coefficient of x^3 $c = -5; // Coefficient of x^2 $d = 0; // Coefficient of x $e = 4; // Constant term $roots = ferrariQuartic($a, $b, $c, $d, $e); $lefHandSide = $a*($roots[1]**4) + $b*($roots[1]**3)+ $c*($roots[1]**2)+$d*($roots[1]**1) + $e; echo $lefHandSide; ?> 这里的系数是 // Working with small Coefficients $a = 1; // Coefficient of x^4 $b = 0; // Coefficient of x^3 $c = -5; // Coefficient of x^2 $d = 0; // Coefficient of x $e = 4; // Constant term 代码运行正常。 $lefHandSide = 0 = RightHandSide 但是当我输入大系数时,$lefHandSide != 0. 示例: <?php function ferrariQuartic($a, $b, $c, $d, $e) { // Normalize the coefficients if ($a == 0) { throw new Exception("Coefficient 'a' cannot be zero for a quartic equation."); } // Step 1: Normalize the equation $b /= $a; $c /= $a; $d /= $a; $e /= $a; // Step 2: Substitute x = y - (b / 4) $p = $c - (3 * $b**2) / 8; $q = ($b * $d) / 2 - ($b**3) / 8 + $e; // Step 3: Solve y^4 + p*y^2 + q = 0 as a quadratic in y^2 $D = $p**2 / 4 - $q; // Discriminant if ($D < 0) { // throw new Exception("The quartic equation has complex roots."); } // Roots for y^2 $y2_1 = -$p / 2 + sqrt($D); $y2_2 = -$p / 2 - sqrt($D); // Step 4: Solve for y $y1 = sqrt($y2_1); $y2 = sqrt($y2_2); // Step 5: Back substitute to find x $roots = []; $roots[] = $y1 - ($b / 4); $roots[] = -$y1 - ($b / 4); $roots[] = $y2 - ($b / 4); $roots[] = -$y2 - ($b / 4); // Return the roots return array_filter($roots, function($root) { return is_finite($root); // Filter out any infinite or NaN values }); } $x =89565891926547004231252920425935692360644145829622209833684329913297188986597.0; $y =12158399299693830322967808612713398636155367887041628176798871954788371653930.0; // Does not work with big coefficients $a = 1; // Coefficient of x^4 $b = 0; // Coefficient of x^3 $c = -6*$x; // Coefficient of x^2 $d = -8*$y; // Coefficient of x $e = -3*($x**2); // Constant term $roots = ferrariQuartic($a, $b, $c, $d, $e); $lefHandSide = $a*($roots[1]**4) + $b*($roots[1]**3)+ $c*($roots[1]**2)+$d*($roots[1]**1) + $e; echo $lefHandSide; ?> 这里的系数是 $x =89565891926547004231252920425935692360644145829622209833684329913297188986597.0; $y =12158399299693830322967808612713398636155367887041628176798871954788371653930.0; // Does not work with big coefficients $a = 1; // Coefficient of x^4 $b = 0; // Coefficient of x^3 $c = -6*$x; // Coefficient of x^2 $d = -8*$y; // Coefficient of x $e = -3*($x**2); // Constant term $lefHandSide = -7.7405416782585E+139 != RightHandSide。为什么会发生这种情况以及如何克服? 假设算法的实现是正确的。您可能会遇到 IEEE754 浮点精度限制。 在这种情况下,您应该使用 BCMath 扩展,它可以处理任意小数。在 PHP 8.4 中使用 BCMath 会更容易、更快,因为它有一个支持运算符重载的新类。
我想合并两个数组,其中第一个数组将是键,第二个数组将是结果数组中的值。 $array1 = array('k1', 'k2'); $array2 = array('v1', 'v2'); 输出应该是: 大批( '...
我有两个数组: $a = 数组(1, 2, 3); $b = 数组('a', 'b', 'c'); 我想将它们合并起来 $ab = 数组( 'a' => 数组(1, 2, 3), 'b' => 数组('a', 'b', 'c') ); 如何做到这一点? 我试过了
我有两个数组: $ids = 数组 ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 8 ) $ranks = 数组 ( [0] => 等级1 [1] => 等级2 [2] => 等级3 ...
是否可以使用 PHP 中的 ZipArchive 类来更改 zip 文件内文件的创建日期或修改日期,而无需将文件写入磁盘并对其进行触摸,然后添加...
我定义了以下路线: //租赁 路线::资源('properties.leases', LeaseController::class) ->仅(['显示']) ->浅(); //发票 路线::资源('租赁。
我想合并具有相同类别 id 和问题 id 的数组。 输入示例: $数组= [ [ 'category_id' => 1, 'question_id' => 1, 'option_id' => 2, '...
如何在 PHP/NodeJS 中将可编辑 PDF 转换为不可编辑 PDF?
问题 我想知道是否有任何 PHP/NodeJS API 可用于在线将可编辑 PDF 转换为不可编辑 PDF。我们有一个客户端应用程序,我们需要一个用户下载的场景...
我可以获取表的列名称,但是有没有办法检索每列的默认数据值? 这是我用来获取表列名称的方法: $q = $dbh->查询("描述