JavaScript 数组和 MySQL
JavaScript Arrays and MySQL
我正在尝试使用 PHP 连接到数据库,然后将 MySQL 查询返回的所有值放入 JavaScript 字符串数组。
这是我目前的代码。
JavaScript代码:
var noDressing = document.getElementById("temp1").innerHTML;
var noDressingNew = noDressing.split(',');
alert(NoDressingNew);
出于调试目的,我正在提醒列表。
这是PHP代码(我知道它连接到数据库成功):
<div id="temp1" style="display: none;">
<?php
include "/home/pi/config.php";
$toPrint = "";
$connect = mysqli_connect("localhost", $name, $pass, "items");
if(mysqli_connect_errno()){
echo "<p>Failed to connect to products database!</p>";
}
$result = mysqli_query($connect, "SELECT * FROM products WHERE options=''");
while($row = mysqli_fetch_array($result)){
$id = $row['id'];
$toPrint .= $id . ",";
}
echo rtrim($toPrint, ",");
?>
</div>
这是我的 table 在数据库中的样子:
ID | NAME | DESCRIPTION | PRICE | TYPE | OPTIONS
我想获取所有 OPTIONS 值为“”(空字符串)的记录,然后将它们的 ID 放入列表中。
但是,当我运行这段代码时,根本没有显示警告框。
谢谢,
将这些添加到数组中,然后在数组上调用 implode() 会更有意义;
$toPrint = array();
while($row = mysqli_fetch_array($result)){
$toPrint[] = $row['id'];
}
$toPrint = implode(',', $toPrint);
如果没有警告框,则 Javascript 错误很可能是导致该特定问题的原因,尽管这可能意味着您在链的更上层有问题。首先按 F12 打开浏览器的开发人员工具,然后转到控制台并刷新页面。检查控制台是否出现任何错误,并尝试更正这些错误。
在使用 PHP 之前直接在数据库上尝试 运行 您的 SQL 以确保您的 SQL 正在按预期工作。您可以为此使用任意数量的工具。为此,我想到了 PHPMyAdmin、HeidiSQL 或 SQLYog。检查那里是否存在任何错误。
如果 none 与您的 SQL 一起存在,请使用 var_dump 将您的查询结果显示到网页(执行此操作时删除 "display: none;")。确保您从 SQL 获得结果。在你的循环中尝试 var_dump 以检查你在循环本身中获得了正确的值。
最后,您需要确保直接在表单上显示的任何内容都正确 HTML 转义以避免 Cross-site scripting attacks. You can use htmlspecialchars 出现这种情况。像这样回显你的字符串:
echo htmlspecialchars($toPrint);
下面是如何使用开源项目http://www.jinqJs.com
var result = jinqJs().from($result).where('OPTIONS == ""').select('ID');
我正在尝试使用 PHP 连接到数据库,然后将 MySQL 查询返回的所有值放入 JavaScript 字符串数组。
这是我目前的代码。
JavaScript代码:
var noDressing = document.getElementById("temp1").innerHTML;
var noDressingNew = noDressing.split(',');
alert(NoDressingNew);
出于调试目的,我正在提醒列表。
这是PHP代码(我知道它连接到数据库成功):
<div id="temp1" style="display: none;">
<?php
include "/home/pi/config.php";
$toPrint = "";
$connect = mysqli_connect("localhost", $name, $pass, "items");
if(mysqli_connect_errno()){
echo "<p>Failed to connect to products database!</p>";
}
$result = mysqli_query($connect, "SELECT * FROM products WHERE options=''");
while($row = mysqli_fetch_array($result)){
$id = $row['id'];
$toPrint .= $id . ",";
}
echo rtrim($toPrint, ",");
?>
</div>
这是我的 table 在数据库中的样子:
ID | NAME | DESCRIPTION | PRICE | TYPE | OPTIONS
我想获取所有 OPTIONS 值为“”(空字符串)的记录,然后将它们的 ID 放入列表中。
但是,当我运行这段代码时,根本没有显示警告框。
谢谢,
将这些添加到数组中,然后在数组上调用 implode() 会更有意义;
$toPrint = array();
while($row = mysqli_fetch_array($result)){
$toPrint[] = $row['id'];
}
$toPrint = implode(',', $toPrint);
如果没有警告框,则 Javascript 错误很可能是导致该特定问题的原因,尽管这可能意味着您在链的更上层有问题。首先按 F12 打开浏览器的开发人员工具,然后转到控制台并刷新页面。检查控制台是否出现任何错误,并尝试更正这些错误。
在使用 PHP 之前直接在数据库上尝试 运行 您的 SQL 以确保您的 SQL 正在按预期工作。您可以为此使用任意数量的工具。为此,我想到了 PHPMyAdmin、HeidiSQL 或 SQLYog。检查那里是否存在任何错误。
如果 none 与您的 SQL 一起存在,请使用 var_dump 将您的查询结果显示到网页(执行此操作时删除 "display: none;")。确保您从 SQL 获得结果。在你的循环中尝试 var_dump 以检查你在循环本身中获得了正确的值。
最后,您需要确保直接在表单上显示的任何内容都正确 HTML 转义以避免 Cross-site scripting attacks. You can use htmlspecialchars 出现这种情况。像这样回显你的字符串:
echo htmlspecialchars($toPrint);
下面是如何使用开源项目http://www.jinqJs.com
var result = jinqJs().from($result).where('OPTIONS == ""').select('ID');