0

我需要给出一个不同的结果:

  1. 你可以吃三明治。
  2. 你可以吃三明治,但不能吃甜甜圈。
  3. 你可以吃甜甜圈和饮料。

整个东西必须随机挑选。

问题是结果。

首先,我必须制作一个 mysql 数据库布尔表,其中包含

 +-------------------------------------+
 |  ids|name | sandwich | donuts| drink|
 |   1 | josh|    1     |   1   |   1  |
 |   2 | john|    0     |   1   |   0  |
 |   3 | mike|    1     |   0   |   0  |
 |   4 | mic |    0     |   1   |   1  |
 +=====================================+

我在 php 中编写了一些代码,但似乎第一个目标没问题,但第二个目标有问题。问题是第二个。有人不能同时吃三明治吃甜甜圈。我从第二个得到的结果是它显示了吃甜甜圈的人的名单,而不是我想要的。

代码有问题吗?...

这是我所做的php代码..

    <?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test1"; // Database name
$tbl_name="skill"; // Table name


// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT ids, name FROM skill WHERE sandwich='1' ORDER BY rand() LIMIT 3";
$result=mysql_query($sql);
?>
eat sandwich is
<?
while($rows=mysql_fetch_assoc($result)){
echo $rows['name']."<br>";}?>


<br>
eat donut
<?
$sql1="SELECT ids, name FROM skill WHERE donuts='1' ORDER BY rand() LIMIT 3";
$result1=mysql_query($sql1);
?>
<?

while($rows1=mysql_fetch_assoc($result1)){
    if ($result <> $result1)
    {echo $rows1['name'];}
    else
    {echo nono;}
}?>
4

1 回答 1

0

我不知道你在用那个while循环做什么。将限制表达为一个WHERE子句,即使它非常冗长,例如:

SELECT ... FROM users
  WHERE (sandwich='1' AND donuts!='1')
    OR (sandwich='0')
  ORDER BY RAND()

可以在其中分层对选择哪些行的任何其他限制。

请注意,除非您绝对必须,否则不要mysql_query在新代码中使用。它已从 PHP 中删除,因为它在使用不当时非常过时且不安全。

于 2013-05-03T01:39:02.553 回答