0

这是我从另一个页面调用的第一个 ajax 函数,它发送一个数组,该数组是 $_POST 上的 9 个整数条目。

该表有三行(一个 ID 增量,另一个称为 listnum,另一个用于 url)。Listnum 是应该显示 URLS 的“顺序”。因此,此脚本旨在根据 POST 交付的新订单更新订单。换句话说,listnum 1 的 URL 将被新的 URL 覆盖,而所有其他 URL 将向上或向下调整以保持列表项的总数相同,并且没有空字段。希望这不会太复杂。

不过有些事情出了差错,我只能做这么多的试验和错误……现在已经呆了几个小时了。尽管一些经验丰富的眼睛可能会说一两件事。

<?
$gotfrompost[] = $_REQUEST[fruitarray];

$con = mysql_connect("dasdfasdft","dbasdfasdf04","noasdfasdfs");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("db337100104", $con); 

$row_total_count  = mysql_query("SELECT COUNT(*) FROM `vim_playlist4`");

// above value should be 9 (as it happens)

$n = 1;

while ($row_total_count > $n) 
{

mysql_select_db("db337100104", $con); 
$result = mysql_query("SELECT * FROM vim_playlist4 WHERE listnum=$gotfrompost[$n]");

while($row = mysql_fetch_array($result))
  {
     $new_url_array[$n] =  $row['url'] ;
     $n++;
  }
}


mysql_select_db("db337100104", $con);   

mysql_query("TRUNCATE TABLE vim_playlist4");

$a = 1;

while($row_total_count > $a){

mysql_query("INSERT INTO vim_playlist4 (url, listnum)
VALUES ('$new_url_array[$a]', '$a')");  

$a++; 

}
  ?>

非常感谢您抽出宝贵的时间,希望这对你们中的一些资深 phpers 来说是一件轻而易举的事

4

1 回答 1

0

像已经提到的其他人一样,请不要使用,mysql_*因为它会使您暴露于 sql-injection(改用 MySQLi 或 PDO)。

您应该出于完全相同的原因测试您的输入!

您遇到的另一个问题是:

$result = mysql_query("SELECT * FROM vim_playlist4 WHERE listnum=$gotfrompost[$n]");

应改为:

$result = mysql_query("SELECT * FROM vim_playlist4 WHERE listnum={$gotfrompost[$n]}");
于 2013-04-28T01:48:00.577 回答