0

对不起标题,我真的不知道我应该怎么称呼它,但希望你能在我的剧本上帮助我。

我想要实现的目标(我对任何类型的“编程”的总经验不到 5 小时,因此是可怕的编码)是发送一个查询 X 次,然后将一个新查询放入那些新创建的行中。

if(isset($_SESSION['email'])) { // IF LOGGED IN

$sql = mysql_query("SELECT max(ordrenr) FROM antalstabel") or die(mysql_error());
$maxordrenr = mysql_query($sql);
$nextnumber = $maxordrenr + 1;
$maxplusantal = $maxordrenr + $antal;
$antal = count($items); // COUNTS DIFFERENT ITEMS IN CART.

for ($i = $maxordrenr; $i <= $maxplusantal; $i++) {

    $sql = mysql_query("INSERT INTO antalstabel (ordrenr) VALUES ('$nextnumber')") or die(mysql_error());

}   

}

这是我的第一个查询,它的作用(或我想要它做的)是获取表“antalstabel”的最大 ID 添加 +1,然后向上计数定义为 $items 的一定数量,直到它执行X 行。

我在这里的第一个问题是,我的表由两个主要的键组成,因此返回这样的查询会导致错误,因为在一次返回后,这两行将是相同的并且不会执行。

第二个问题是表中的下一个值不应该在彼此之后插入 X 次,而是在之后添加某些 ID。

我最终想要实现的(不仅是通过这个脚本,而是当前的问题)是这样的:

ordrenr(key)varenr(key) antal
1           3           1
1           2           2
2           1           4
3           1           1
3           2           1
3           3           1

这对任何人都有意义吗?谁能告诉我我这样做的方法是没有希望的,还是有一些更好的想法让我用作执行以结束这样的事情?

我应该不使用主键还是它是如何工作的?

感谢您甚至花时间阅读此内容:)

-胜利者

编辑未来:

将脚本更改为此它的工作:

if(isset($_SESSION['email'])) { // IF LOGGED IN

$sql = mysql_query("SELECT * FROM antalstabel ORDER BY ordrenr DESC LIMIT 1") or die(mysql_error());
$row = mysql_fetch_assoc($sql);
$maxordrenr = $row['ordrenr'];
$nextnumber = $maxordrenr + 1;
$maxplusantal = $maxordrenr + $antal;
$antal = count($items); // COUNTS DIFFERENT ITEMS IN CART.

for ($i = $maxordrenr; $i <= $maxplusantal; $i++) {

$sql = mysql_query("INSERT INTO antalstabel (ordrenr, varenr) VALUES ('$nextnumber','1236')") or die(mysql_error());

}

4

1 回答 1

0
$maxordrenr = mysql_query($sql);

应该

$maxordrenr = mysql_result($sql,0);
于 2013-05-01T06:37:14.900 回答