Php 如果多个表中存在记录,则禁用“删除”按钮
我这里有mysql记录显示在html表中,带有删除按钮。如果两个数据库表中都存在记录,我需要做的是禁用delete按钮 如果两个表中都已存在记录,如何禁用每行的“删除”按钮?任何帮助都将不胜感激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
$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
}