php - 如何选择两个表并判断数据是<还是=

标签 php mysql sql

我有一个表单和一个带有 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/

相关文章:

php - 删除PHP mysql中打印的内容

Mysql提高采样查询速度

php - 我是否正确使用了 MySQL 事务?

php - 不将数据插入 wp_users 表中的自定义字段

php - 循环遍历日期以查找特定日期 php SQL

php - Fuel\Core\PhpErrorException [通知] : Undefined variable: error when configuring mysql db

php - MySQL:如果小于 now() 加 1 个月,则选择日期加 6 个月

PHP/MySQL - 从实际 gps 坐标查找 500 米半径内的所有项目

mysql - sql mysql 最大()

javascript - jquery 中的 php 数组循环 : alert [ object object]