Php 如何更新while循环中用于初始化循环的变量

Php 如何更新while循环中用于初始化循环的变量,php,loops,Php,Loops,我的代码有点问题 我正在尝试生成一个唯一的名称以插入到数据库中 我创建了以下函数,用于检查名称是否已存在: function checkExists($database_reelfilm, $reelfilm, $mySlug, $locVal){ $mmid_rs_slugCheck = "-1"; if (isset($mySlug)) { $mmid_rs_slugCheck = $mySlug; } $m

我的代码有点问题

我正在尝试生成一个唯一的名称以插入到数据库中

我创建了以下函数,用于检查名称是否已存在:

function checkExists($database_reelfilm, $reelfilm, $mySlug, $locVal){
        $mmid_rs_slugCheck = "-1";
        if (isset($mySlug)) {
          $mmid_rs_slugCheck = $mySlug;
        }
        $mmid2_rs_slugCheck = "-1";
        if (isset($locVal)) {
          $mmid2_rs_slugCheck = $locVal;
        }
        mysql_select_db($database_reelfilm, $reelfilm);
        $query_rs_slugCheck = sprintf("SELECT * FROM locations_loc WHERE locations_loc.slug_loc = %s AND locations_loc.id_loc != %s", GetSQLValueString($mmid_rs_slugCheck, "text"),GetSQLValueString($mmid2_rs_slugCheck, "int"));
        $rs_slugCheck = mysql_query($query_rs_slugCheck, $reelfilm) or die(mysql_error());
        $row_rs_slugCheck = mysql_fetch_assoc($rs_slugCheck);
        $totalRows_rs_slugCheck = mysql_num_rows($rs_slugCheck);
        if($totalRows_rs_SlugCheck > 0){
            return true;
        }else{
            return false;
        }
    };
然后,我创建一个循环来检查变量名是否存在,如果存在,我希望它将计数器的值添加到变量名,然后重新检查它是否存在,直到我有一个唯一的名称,然后可以保存到我的db

$updateVal = slugify($row_rs_locations['name_loc']);
        $newSlug = slugify($row_rs_locations['name_loc']);
        $locVal = $row_rs_locations['id_loc'];
        //echo(slugify($row_rs_locations['name_loc']));
        $checkCount = 1;
        $isDupe = '<BR>';
        while(checkExists($database_reelfilm, $reelfilm, $newSlug, $locVal)){
            $isDupe = 'Duplicate Added ' . $checkCount . ' to slug...<BR>';
            $newSlug = $newVal . $checkCount;
            $checkCount ++;
        }
        if($updateVal != $newVal){
            $updateVal = $newSlug;
        }
$updateVal=slagify($row_rs_位置['name_loc']);
$newSlug=slugify($row_rs_位置['name_loc']);
$locVal=$row_rs_位置['id_loc'];
//echo(slugify($row_rs_位置['name_loc']));
$checkCount=1;
$isDupe='
'; while(checkExists($database\u revelfilm,$revelfilm,$newSlug,$locVal)){ $isDupe='Duplicate Added'。$checkCount。'to slug…
'; $newSlug=$newVal.$checkCount; $checkCount++; } 如果($updateVal!=$newVal){ $updateVal=$newSlug; }
我显然做错了什么,我需要在下一次迭代中使用while循环来使用循环中设置的newSlug值,从我的各种尝试来看,我根本不确定这是否可行


实现这一点的最佳方法是什么?

$newVal
从未给出值,但使用了两次(第二块代码)。我想你需要这样的东西:

$newSlug = slugify($row_rs_locations['name_loc']);
$newVal = $newSlug;
我需要在下一次迭代中使用while循环来使用newSlug值 循环设置

在while循环中

$newSlug = $newVal . $checkCount;
但是$newVal并不存在。将该行替换为以下内容:

$newSlug .= $checkCount;

$newVal
从未被赋予值,但它被使用了两次(第二个代码块)。这是一个复制粘贴错误吗?捕捉得很好,实际上我应该定义$newVal=slugify($row_rs_locations['name_loc']);而不是$newSlug=slugify($row_rs_locations['name_loc']);我需要更新一些东西,但我认为这将解决我的问题,如果你把它作为一个答案,我可以标记它正确。如果你把它作为答案写进去,我会认为它是正确的