gpt4 book ai didi

javascript - PHP 数组不会存储变量

转载 作者:行者123 更新时间:2023-11-29 07:58:19 25 4
gpt4 key购买 nike

我正在开发一个网站,在编码时,我遇到了一个奇怪的错误。

我将 MySQL 查询结果存储在一个数组中,然后使用存储的数据调用 JavaScript 函数。该数组最初包含 9 项:8 项为 tinyint(4) 类型(在数据库中 - 我不知道它是否有用),一项为 int(11)。后来,我意识到我也必须向它们传递一个 String,所以我包含了一个 Varchar(40) 类型的项目。

问题就在这里。到目前为止,代码运行没有任何错误 - 我可以传递变量,在 JS 代码中使用它们并将它们显示在网站上。一旦包含该字符串,站点就会崩溃(不显示任何内容)。

这是代码:

<?php

// Create connection
$con=mysqli_connect("mysql7.000webhost.com","a2248489_admin","SQL123DevAdmin","a2248489_players");
$con2=mysqli_connect("mysql7.000webhost.com","a2248489_admin","SQL123DevAdmin","a2248489_players");

// Check connection
$troopArray = array(array());
$result = mysqli_query($con,"SELECT ID, Name FROM Player");

$counter = 0;

while($row = mysqli_fetch_array($result)) {
$troops = mysqli_query($con,"SELECT * FROM Troops WHERE ID = '" . $row['ID'] . "' ");
while($sor = mysqli_fetch_array($troops)) {
$troopArray[$counter][0] = $sor['archerLvl'];

$troopArray[$counter][1] = $sor['giantLvl'];

$troopArray[$counter][2] = $sor['wizardLvl'];

$troopArray[$counter][3] = $sor['balloonLvl'];

$troopArray[$counter][4] = $sor['dragonLvl'];

$troopArray[$counter][5] = $sor['minionLvl'];

$troopArray[$counter][6] = $sor['hogLvl'];

$troopArray[$counter][7] = $sor['golemLvl'];

$troopArray[$counter][8] = $sor['witchLvl'];

$troopArray[$counter][9] = $row['ID'];

$troopArray[$counter][10] = $row['Name'];
$counter++;

}
}

//------------------Writing the name into a new DIV------------------------
echo '<script type="text/javascript">';
echo 'var nameButton = document.createElement("input");';
echo 'nameButton.setAttribute("type","button");';
echo 'nameButton.setAttribute("value","' . $row['Name'] . '");';
echo 'nameButton.setAttribute("name","' . $row['ID'] . '");';
echo 'nameButton.style.backgroundImage="url(\"images/login_button/button_name.png\")";';
echo 'nameButton.style.marginLeft = "5px";';
echo 'nameButton.style.marginTop = "0px";';
echo 'nameButton.style.height="60px";';
echo 'nameButton.style.width="200px";';
echo 'nameButton.style.border ="none";';
echo 'nameButton.style.backgroundColor ="transparent";';
echo 'nameButton.style.fontWeight="900";';
echo 'nameButton.style.paddingLeft="50px";';
echo 'nameButton.style.textAlign="left";';
echo 'nameButton.onclick = function()
{

TableDraw(' . $troopArray[0][0] . ',' . $troopArray[0][1] . ',' . $troopArray[0][2] . ',' . $troopArray[0][3] . ',' . $troopArray[0][4] . ',' . $troopArray[0][5] . ',' . $troopArray[0][6] . ',' . $troopArray[0][7] . ',' . $troopArray[0][8] . ',' . $troopArray[0][9] . ',' . $troopArray[0][10] . ');

};';
echo 'document.body.appendChild(nameButton);';
echo '</script>';
echo '<br>';

?>

一切正常,直到 $troopArray[$counter][10] = $row['Name']; ,我什至稍后将其设置为按钮的文本时使用它。如果我将“名称”更改为“ID”,代码就会运行。

据我所知,我可以在 PHP 数组中存储任何类型的变量,因为它不是真正的数组。但为什么我似乎无法在整数中存储字符串?

最佳答案

我在您的代码中没有看到任何错误,但有一件事对我来说很奇怪:

$troopArray = array(array());

您应该将这一行简单地更改为:

$troopArray = array();

并检查问题是否仍然出现

还有一点是您的 $counter 始终为 0。这不会导致问题,但也许您还想在循环结束之前增加它?

编辑

如果问题仍然出现,您应该向我们展示整个循环代码(现在它在第一个循环后完成,也许稍后您在 $row 变量中更改某些内容

关于javascript - PHP 数组不会存储变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com