我有一个表单和一个带有 2 个表的数据库。数据库表是用户信息和书籍。
用户信息表 - ID 标题 作者
书籍表 - ID 标题 副本
我毫无问题地用书名填充选择框。
这两个表有两列相同的标题。
这两个表有两列相同 - 标题。
我需要的是找到用户信息表中的标题数量,并将其与书籍表中的副本列进行比较。如果用户信息表列标题 == 到书籍表列副本,则不要在选择框中显示该标题。
例如:这是一个展示我想说的内容的例子。 用户信息表列 - 标题 - 一本书的标题 - 这个标题有 3 个。图书表列 - 份数 - 还剩 3 份。由于 3 == 3,书名不会显示在选择框中。
我似乎无法弄清楚这一点。有一个更好的方法吗?
这是我必须填充选择框的内容。
<select name="books">
<option value="">Select a Book</option>
<?php
mysqli_select_db($con,"books");
$result = mysqli_query($con,"SELECT * FROM books");
while($row = mysqli_fetch_array($result))
{
echo ("<option value='$row[title]'>$row[title]</option>");
}
?>
</select>
最佳答案
希望我理解你的问题:
<select name="books">
<option value="">Select a Book</option>
<?php
mysqli_select_db( $con,"books" );
// fetch titles from table user-info
$user_books = mysqli_query( $con,"SELECT title FROM user-info" );
// put the records into the array
$books = [ ];
while( $row = mysqli_fetch_array( $user_books ) )
{
if( isset( $books[$row[ 'title' ] ] ) )
{
$books[ $row[ 'title' ] ]++;
} else {
$books[ $row[ 'title' ] ] = 1;
}
}
$result = mysqli_query( $con,"SELECT * FROM books" );
while( $row = mysqli_fetch_array( $result ) )
{
// if the number of title in user table equals to the number of copies
if( isset( $books[ $row[ 'title' ] ] ) && $books[ $row[ 'title' ] ] == $row[ 'copies' ] ) {
continue;
}
echo ("<option value='" . $row[ 'title' ] . "'>" . $row[ 'title' ] . "</option>");
}
?>
</select>
关于php - 如何选择两个表并判断数据是<还是=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845810/