繁体   English   中英

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

[英]Disable delete button if record exist in multiple table

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

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

$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中使用-> rowCount()

所以你需要这个逻辑

query1 =表1中的计数行

query2 =表2中的计数行

就像您说它在两个表中都存在一样,应该将其隐藏,以便使用if-or statement

if(query1 == 0 || query2 == 0){
 //show your button
}

这里的意思很简单:

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().']!');
        }       
    }
}

现在行计数: 更新了&&和2x query1检查,出现了一些错误

 $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
 }

抱歉,我懒得添加while语句;)如果我是正确的,则可以从sql查询中的多个表中进行检查,因此,如果在1个查询之后进行多重检查,则可以使用1个查询来进行检查!

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

1) Connect database

2) query table1

3) Count table1entriesrecords

4) query table2

5) Count table2entriesrecords

6) Check one是否等于0

7)如果one之一等于0 entriesrecordsrows )),则显示按钮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM