MySQL PHP查询放在另一个查询的while循环失败中

时间:2012-02-18 13:04:42

标签: php mysql

我有一个小马名称列,其中饲养员的前缀包含在小马的名字中(例如,Ashbrook Boy,其中Ashbrook是Breeder的前缀,而Boy是小马的名字)。我有另一个表格,其中列出了所有使用的前缀。我想循环遍历该列表,并通过我的小马搜索每个记录,并依次获取名称以每个前缀开头的那些记录。当它们被提取时,我想从它们的名称中删除所述前缀,并在它们自己的表上将其弹出到一个列中。

最后,我想要 - 而不是一个列同时包含前缀和名称 - 两列:一列用于前缀,一列用于名称。

我认为下面的代码会为我做,但它不起作用。我得到$ res的“非有效资源”错误。你能给我的任何帮助都会非常感激 - 我真的不想亲手做到这一点! :P

我在MySQL数据库中使用PHP脚本,我可以通过PHPMyAdmin访问它。

include '../conn.php';

$q=mysql_query("SELECT DISTINCT Pre FROM prefixes");
while($r=mysql_fetch_array($q)) {
    $pre=$r['Pre'];
    $sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC";
    mysql_query($sql);
    echo $sql;
    while($res=mysql_fetch_array($sql)){
        $name=$res['Name'];
        $name=trim(str_replace("$pre","", $name));
        $id=$res['ID'];
        mysql_query("UPDATE profiles SET Prefix = '$pre', Name = '$name' WHERE ID = '$id' ");
    }
}
mysql_close($con);

1 个答案:

答案 0 :(得分:0)

你的错误来自于$ sql是查询字符串,而不是查询的mysql结果

$sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC";
mysql_query($sql);
echo $sql;
while($res=mysql_fetch_array($sql)){

这样看起来会更好:

$sql="SELECT ID, Name FROM profiles WHERE (Name REGEXP '^$pre') ORDER BY ID ASC";
$result = mysql_query($sql);
while($res=mysql_fetch_array($result)){