как написать, если условие для многослойных запросов, таких как

У меня есть 3 запроса, как

$q1 = select email from tbl students
$q2 = select email from tbl corporates
$q3 = select email from tbl institutes

Я хочу проверить все 3 таблицы, если счетчик электронной почты равен нулю из всех вышеперечисленных, тогда только действуйте так,
Могу ли я написать так:

if(mysqli_num_rows($q1) || mysqli_num_rows($q2)  || mysqli_num_rows($q3) ==0){
proceed to process.
}else{
do nothing
}

Мой вопрос — это правильный подход или что-то лучше оставить, чему мне нужно научиться.

1

Решение

вам нужно использовать & вместо || а также проверьте количество строк для каждого вашего объекта MySQL

if(mysqli_num_rows($q1) == 0 && mysqli_num_rows($q2) == 0 && mysqli_num_rows($q3) ==0){
//proceed to process.
} else {
//do nothing
}
1

Другие решения

Сначала вы должны выполнить эти запросы, чтобы у вас было:

$db = mysqli_connect("localhost","my_user","my_password","my_db");
$q1 = "select email from tbl students";
$q2 = "select email from tbl corporates";
$q3 = "select email from tbl institutes";

$db_q1 = mysqli_query($db, $q1);
$db_q2 = mysqli_query($db, $q2);
$db_q3 = mysqli_query($db, $q3);

if(mysqli_num_rows($db_q1) == 0 && mysqli_num_rows($db_q2) == 0 && mysqli_num_rows($db_q3) == 0) {
proceed to process.
}
1

попробуйте сделать проще с помощью mysqli_multi_query()

$con=mysqli_connect("localhost","my_user","my_password","my_db");// Check connection

if (mysqli_connect_errno()) {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}

$sql = select email from tbl students";
$sql .= select email from tbl corporates";
$sql .= "select email from tbl institutes";

// Execute multi query

if (mysqli_multi_query($con,$sql)){

do{   // Store first result set

if ($result=mysqli_store_result($con)) {  // Fetch one and one row

if (mysqli_fetch_row($result) == 0)  {

//your code here
}
}

}

1
По вопросам рекламы [email protected]