У меня есть 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
}
Мой вопрос — это правильный подход или что-то лучше оставить, чему мне нужно научиться.
вам нужно использовать & вместо || а также проверьте количество строк для каждого вашего объекта MySQL
if(mysqli_num_rows($q1) == 0 && mysqli_num_rows($q2) == 0 && mysqli_num_rows($q3) ==0){
//proceed to process.
} else {
//do nothing
}
Сначала вы должны выполнить эти запросы, чтобы у вас было:
$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.
}
попробуйте сделать проще с помощью 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
}
}
}