如何选择两个表并确定数据是否是<或=

时间:2015-08-06 02:21:47

标签: php mysql sql

我有一个表单和一个包含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>

1 个答案:

答案 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>