我有一列小马的名字,其中饲养员的前缀包含在小马的名字中(例如Ashbrook Boy,其中Ashbrook是饲养员前缀,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);
您的错误是因为$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)){