循环中的最高值数字多次

时间:2013-03-07 19:08:10

标签: php mysql sql

我有一个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']."')";
    }

1 个答案:

答案 0 :(得分:1)

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

  

CREATE TABLE searches_refid INT NOT NULL AUTO_INCREMENT PRIMARY   KEY);

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

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