一直试图将我的数据从我的while循环保存到脚本变量但没有成功。如果我想将我的php数据保存到脚本变量,请举个例子。这对我不起作用。任何人都有任何想法?不想手动保存所有数据。非常感谢答案!询问你是否理解:)现在它只保存row2中的最后一个变量。
$id = 0;
while($rows = mysql_fetch_array($data)){
$id = $id + 1;
$data = $rows['data'];
$id2 = 0;
$sql = mysql_query("select * from table where id = '".$data."'");
while($row2 = mysql_fetch_array($sql)){
$id2 = $id2 + 1;
$var = $row2['var']; //lets say this one is HT123
}
$savethis = "var data" . $id . "_" . $id2 . " = '" . $var . "';";
}
echo "<script>";
echo $savethis;
//I want it to equal like "var data1_1 = 'HT123';
//And then do this for each row, so:
//var data1_2 = 'HW132';
//var data1_3 = 'PQ542';
//var data2_1 = 'SA210';
//Etc
echo "</script>";
答案 0 :(得分:1)
我真的建议将PDO用作mysql_fetch_array() will be deprecated in the near future。
考虑到这一点,如果你能用PDO(here is where you can learn to set up a PDO connection)做到这一点,我认为这可能会起作用(因为我没有你的数据可以解决这个问题:< / p>
// code to set up a PDO connection
$sql = "SELECT * FROM first_table";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$first_results = $stmt->fetchAll(PDO::FETCH_OBJ);
$result_array = array();
foreach ($first_results AS $first) {
$newSQL = "SELECT * FROM second_table WHERE id = '{$first->id}'";
$newStmt = $pdo->prepare($newSQL);
$newStmt->execute();
$second_results = $newStmt->fetchAll(PDO::FETCH_OBJ);
// append
$result_array[$first->id][$second_results->id] = $second_results->var;
}
return json_encode($result_array);
同样,这只是一个粗略的想法,可能会扭曲。但是这应该给你由id键入的嵌套数组。所以它可能看起来(希望如此):
[0]
[0] => "var", (this would be equivalent to data0_0 = var)
[1] => "var2"
[1]
[0] => "foo"
您可以使用AJAX将请求发送到PHP文件,然后您可以将JSON数组作为响应。
答案 1 :(得分:0)
你可以使用json_encode为你做污垢工作!
echo json_encode($data);
这将编码任何你有的json格式(无论是数组,对象还是变量)
答案 2 :(得分:0)
您需要将$var
放入Apostroff。如果没有它,你将在js代码中出错。
$savethis = "var data" . $id . "_" . $id2 . " = '" . $var . "';";
答案 3 :(得分:0)
之前做过这些事。我会给你一个关于如何运作的粗略想法。
在“while”之前添加,然后在while循环之后递增:
$x=1;
将$ var设置为数组并在while循环后计算其值:
$var[$x] = $row2['var'];
代码将如下所示:
$x=1;
while($row2=mysqli_fetch_array($sql) )
{
$var[$x] = $row2['var'];
$x++;
}
$array_length=count($var);
循环“脚本”:
$id=1;
$id2=1;
echo "<script>";
for($i=1; $i<=$array_length; $i++)
{
$savethis = "var data" . $id++ . "_" . $id2++ . " = '" . $var[$i] . "';";
echo $savethis;
}
echo "</script>";
这就是您的完整代码如何看待:
$x=1;
while($row2=mysqli_fetch_array($sql) )
{
$var[$x] = $row2['var'];
$x++;
}
$array_length=count($var);
$id=1;
$id2=1;
echo "<script>";
for($i=1; $i<=$array_length; $i++)
{
$savethis = "var data" . $id++ . "_" . $id2++ . " = '" . $var[$i] . "';";
echo $savethis;
}
echo "</script>";
核心解决方案围绕数组展开。 希望这有帮助:)