Php 如果多个表中存在记录,则禁用“删除”按钮

Php 如果多个表中存在记录,则禁用“删除”按钮,php,mysql,sql,Php,Mysql,Sql,我这里有mysql记录显示在html表中,带有删除按钮。如果两个数据库表中都存在记录,我需要做的是禁用delete按钮 如果两个表中都已存在记录,如何禁用每行的“删除”按钮?任何帮助都将不胜感激 $search = $mysqli1->real_escape_string($_POST['bid']); $search = preg_replace("/[^A-Za-z0-9 ]/", '', $search); $search = $_POST['bid']; $res = $mysql

我这里有mysql记录显示在html表中,带有删除按钮。如果两个数据库表中都存在记录,我需要做的是禁用delete按钮

如果两个表中都已存在记录,如何禁用每行的“删除”按钮?任何帮助都将不胜感激

$search = $mysqli1->real_escape_string($_POST['bid']);
$search = preg_replace("/[^A-Za-z0-9 ]/", '', $search);
$search = $_POST['bid'];
$res = $mysqli1->query("select * from code WHERE item LIKE '%$search%' OR item_code LIKE '%$search%' OR cat_code LIKE '%$search%' order by item_code ASC");

while($r = $res->fetch_assoc()){
echo "<tr>
<td><a href='#' id='".$r['id']."' class='del'><img src='../images/del.png'></a></td>
</tr>";
}

加入一个简单的if语句 连接到两个查询 在pdo中使用->行计数 在mysqli中不确定

这就是你需要的逻辑

query1=表1中已计数的行

query2=表2中已计数的行

就像你说如果它存在于两个表中,它应该隐藏它,这样你就可以使用if或语句了

这里的情况很简单:

if(query1 equals 0 rows OR query2 equals 0 rows){
 //show your button
}
//While you don't put up the else with something else it won't show anything
//so if there are the value of 1+ rows in both query1 and query2 this won't show anything
如果你想让我提供一个pdo示例,请回答

编辑:

PDO类使连接更容易

class Database extends PDO
{
    private $db;
    public function Database($host, $user, $pass, $db) {
        try {
            $this->db = new PDO("mysql:dbname=".$db.";host=".$host.";",    $user, $pass);       
        } catch(PDOEXCEPTION $e) {
            die('An error has occurred! [Code: '.$e->getCode().']!  <br/>More info: ['.$e->getMessage().']!');
        }
    }
    public function runQuery($query) {
        try{
            return $this->db->query($query);
        } catch(PDOEXCEPTION $e) {
            die('An error has occurred! [Code: '.$e->getCode().']!<br/>More info: ['.$e->getMessage().']!');
        }       
    }
}
抱歉,我太懒了,无法添加while语句; 如果我是正确的,您可以在一个sql查询中从多个表进行检查,因此,如果您在一个查询之后进行多个检查,那么您可以使用一个查询进行检查

编辑: 此问题的逻辑步骤:

1连接到数据库

2查询表1

3计算表1中的记录

4查询表2

5计算表2中的记录

6检查其中一个是否等于0


7如果其中一个等于0个条目recordsrows,则显示按钮

这是我自己的类,我将使用示例更新答案,因此我需要在查询中使用select count?你能给我一个查询示例吗?我使用PDO示例更新了线程我使用该示例处理我的内容,我可以在我的电子邮件列表中很好地循环我唯一使用的是1表,但它应该完美地工作使用2我希望我的例子帮助你。如果不是,请用你想要的或错误的方式回答。请考虑你的前三行代码是怎么做的。这样可以忽略前两个,因为第3行覆盖了它们的结果。在查询中插入原始输入。那不是你想做的。通过一点精心设计的输入,我为代码表的每一行都设置了一个删除按钮。。。
class Database extends PDO
{
    private $db;
    public function Database($host, $user, $pass, $db) {
        try {
            $this->db = new PDO("mysql:dbname=".$db.";host=".$host.";",    $user, $pass);       
        } catch(PDOEXCEPTION $e) {
            die('An error has occurred! [Code: '.$e->getCode().']!  <br/>More info: ['.$e->getMessage().']!');
        }
    }
    public function runQuery($query) {
        try{
            return $this->db->query($query);
        } catch(PDOEXCEPTION $e) {
            die('An error has occurred! [Code: '.$e->getCode().']!<br/>More info: ['.$e->getMessage().']!');
        }       
    }
}
 $consite = new Database('DBHost','DBUsername','DBPassword','DBName');
 $query1 = $consite->runQuery("SELECT * FROM TABLE1");
 $query2 = $consite->runQuery("SELECT * FROM TABLE2");
 if($query1->rowCount() == 0 || $query2->rowCount() == 0) {
  //do your while statement to loop through it
  //if you done your while statement it only shows the delete button
  //for items that are NOT in both tables
 }