0

我有一个 INSERT 循环,我需要向它添加一个参考号。我需要循环中的所有参考编号都相同。我知道使用 MAX() 我可以选择表中的最大数字。但是如果我循环它只会随着每个循环而增加,而我需要它保持不变。

有没有办法在查询本身中做到这一点?还是将其保存在循环外的变量中的唯一方法?

示例代码:

    for($i=2;$i<=$row_count;$i++){ // Loops 3 times (example)
    $part = $vehicle.'_part'.$i;
    $description = $vehicle.'_description'.$i;
    $imageName = $vehicle.'_image'.$i;
    $parts[] = array(
        'part' => $_SESSION[$part],
        'image' => $_SESSION[$part],
        'description' => $_SESSION[$description]);
    }

    foreach($parts as $onePart){    
            $queries[] = "INSERT INTO searches_tbl (ref_nr, vozila_id, korisnici_id, part, description, image)
                        VALUES (???, (SELECT id FROM vozila_tbl ORDER BY id DESC LIMIT 1), 
                            (SELECT id FROM korisnici_tbl WHERE email = '".$email_address."' ORDER BY id DESC LIMIT 1), '".$onePart['part']."', '".$onePart['description']."', '".$onePart['image']."')";
    }
4

1 回答 1

1

您可以创建一个新表,即searches_ref仅使用一个 AUTO_INCREMENT 主键列。

创建表searches_refidINT NOT NULL AUTO_INCREMENT PRIMARY KEY);

然后,您将在循环之前插入一个新行searches_ref,并获得一个可以在循环中使用的新 id。

这样,您就不应该遇到并发问题(您可能会使用MAX()

于 2014-04-28T09:10:35.753 回答