我有一个表单和一个包含2个表的数据库。 Db表是用户信息和书籍。
用户信息表 - ID 标题 作者
书桌 - ID 标题 拷贝我正在填写带有书名的选择框,没有任何问题 这两个表有两列相同的 - 标题。
这两个表有两列相同的标题 - 标题。
我需要的是在user-info表中找到标题的数量,并将其与books表中的副本列进行比较。如果user-info表列标题是== to books表列副本,则不要在选择框中显示该标题。
例如:这是一个显示我想说的内容的例子。 user-info table column - title - the-title-of-a-book - 这个标题有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>
答案 0 :(得分:0)
希望我理解你的问题:
<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>