hi我正在尝试编写一个脚本,该脚本将使用php更新我的数据库
我需要组合数据库中的两列,删除它们的特殊字符和空格,并将结果插入数据库的第三列
fn ln result
Super- Man sman
Bat& Man bman
Wonder - Woman wwoman
我的脚本似乎无法得到我想要的结果
<?php
include('connect2.php');
$query = mysql_query("SELECT * from alumni");
$query = mysql_fetch_array($query);
while($query){
$query[ln] = str_replace(" ", "", $query[ln]);
$query[fn] = str_replace(" ", "", $query[fn]);
$query[ln] = ereg_replace("[^A-Za-z0-9]", "", $query[ln]);
$query[fn] = ereg_replace("[^A-Za-z0-9]", "", $query[fn]);
$query[ln] = strtolower($query[ln]);
$query[fn] = strtolower($query[fn]);
$query[fn] = substr($query[fn],0,1);
printf($username = $query[fn] . $query[ln]);
mysql_query("UPDATE alumni SET username='$username' WHERE alumni_id = $query[alumni_id]") or die(mysql_error());
}
?>
有人能帮我吗?提前感谢
***编辑****最终使工作
<?php
include('connect2.php');
$b = mysql_query("SELECT * from alumni");
while($a = mysql_fetch_array($b)){
//echo $a[fn];
$ln = str_replace(" ", "", $a[ln]);
$fn = str_replace(" ", "", $a[fn]);
$ln = ereg_replace("[^A-Za-z0-9]", "", $ln);
$fn = ereg_replace("[^A-Za-z0-9]", "", $fn);
$ln = strtolower($ln);
$fn = strtolower($fn);
$fn = substr($fn,0,1);
printf($username = $fn . $ln);
mysql_query("UPDATE alumni SET username='$username' where alumni_id = $a[alumni_id]") or die(mysql_error());
}
?>
我在您的代码中看到了几个问题,但需要注意的最大问题是:
$query = mysql_fetch_array($query);
mysql_fetch_array函数接收一个结果集,并返回要获取的记录的数组。使用此指令,您将用数组替换结果集,如果丢失了结果集,您将无法获取更多记录。
顺便说一句,您不会在循环中获取下一条记录。我看到了另一个问题。