Php 使用mysqli和fetch_对象嵌套循环
我想在两张桌子之间做一个比较。如果找到匹配项,我需要从一个表复制数据并将其插入另一个表中。我能够很好地从表中提取数据,但是我创建的嵌套循环有问题。它只循环并找到一个结果。当浏览表格时,有1000个匹配项,所以我认为我做错了什么。我唯一的猜测是fetch_对象的用法以及我是如何使用它的。我尝试改用fetch_assoc,但得到了相同的结果:Php 使用mysqli和fetch_对象嵌套循环,php,mysql,for-loop,mysqli,Php,Mysql,For Loop,Mysqli,我想在两张桌子之间做一个比较。如果找到匹配项,我需要从一个表复制数据并将其插入另一个表中。我能够很好地从表中提取数据,但是我创建的嵌套循环有问题。它只循环并找到一个结果。当浏览表格时,有1000个匹配项,所以我认为我做错了什么。我唯一的猜测是fetch_对象的用法以及我是如何使用它的。我尝试改用fetch_assoc,但得到了相同的结果: $mysqli = mysqli_connect("127.0.0.1", "uname", "pword") or die("Can't connect t
$mysqli = mysqli_connect("127.0.0.1", "uname", "pword") or die("Can't connect to databse!");
mysqli_select_db($mysqli, "db_name") or die("Couldn't Select Database!");
$result = $mysqli->query('SELECT * FROM table_1');
$title = $mysqli->query('SELECT title FROM table_2');
if($result && $title){
while($t_row = $title->fetch_object()){
while($row = $result->fetch_object()){
$s_title = strtolower($t_row->title);
$m_title = strtolower($row->description);
if($s_title == $m_title) {
echo "Matched: $s_title <strong>with</strong> $m_title<br />";
break;
}
}
}
}
$mysqli=mysqli_connect(“127.0.0.1”、“uname”、“pword”)或die(“无法连接到数据库!”);
mysqli_select_db($mysqli,“db_name”)或die(“无法选择数据库!”);
$result=$mysqli->query('SELECT*fromtable_1');
$title=$mysqli->query('selecttitle fromtable_2');
如果($result&&$title){
而($t\u row=$title->fetch\u object()){
而($row=$result->fetch_object()){
$s_title=strtolower($t_row->title);
$m_title=strtolower($row->description);
如果($s_title=$m_title){
echo“匹配:$s_title和$m_title
”;
打破
}
}
}
}
您应该将第二个循环的结果存储在var中。因为在第一次查看之后,您的第二个光标位于结果的末尾
if($result && $title){
$resulted_rows = array();
while($row = $result->fetch_object()){
$resulted_rows[] = strtolower($row->description);
}
while($t_row = $title->fetch_object()){
$s_title = strtolower($t_row->title);
if(in_array($s_title, $resulted_rows)) {
echo "Matched: $s_title" . PHP_EOL;
}
}
}