Hi,
Ik probeer een controle te maken of er tenminste 1 of meer records zijn.
Helaas gaat dit niet helemaal goed :(
Code (php)
1
2
3
4
5
6
7
8
9
<?php
$check = "EXISTS(SELECT * FROM item WHERE id=1)";
$result = mysqli_query($connection, $check);
if(mysqli_fetch_array($result) < 1){
echo 'er zijn geen records';
}else{
echo 'er zijn resultaten gevonden';
}
?>
Die query slaat nergens op....
SELECT * FROM item WHERE id=1
En tellen doe je met mysqli_num_rows()
EXISTS is in een andere syntax enkel te gebruiken in een subquery, als je wilt kijken of een id ook in een andere tabel voorkomt. Maar hier is geen sprake van.
Gewijzigd op 21/03/2020 01:22:55 door
- Ariën -Records tellen doe je bij voorkeur met een vorm van
SELECT COUNT(), bijvoorbeeld:
Code (php)
1
2
3
4
5
6
<?php
$check = 'SELECT COUNT(1) FROM `item`';
$result = mysqli_query($connection, $check);
$row = mysqli_fetch_array($result);
$count = $row[0];
?>
Hallo, je kunt deze query gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$db = mysqli_connect(); // Je database verbinding
$query = "SELECT * FROM item";
$mysql = mysqli_query($db, $query);
$aantal_rows = mysqli_num_rows($mysql);
if($aantal_rows == 0) {
// Geen rijen in DB
} else {
// Wel een rij in DB
}
?>
Succes!
Om te kijken of een artikel bestaat, lijkt naar mijn idee mysqli_num_rows() of het OO-equivalent $result->num_rows wel te voldoen. Als je echt aantellen wilt weten, dan lijkt Ward's oplossing beter. Want bij wijze van spreke tel je daarbij uit een boekenschap van de bibliotheek het aantal boeken, terwijl je bij mysqli_num_rows, alle boeken eerst uit het schap haalt, en dan telt. Een aanzienlijk zwaardere klus als je héél veel records hebt.....
Gewijzigd op 21/03/2020 12:18:09 door
- Ariën -Queries die dingen tellen als COUNT en SUM leveren ook altijd precies één resultaat op, ook als de condities zodanig zijn dat er geen bijbehorende resultaten zouden zijn.
De methode van @Ward kan daarom altijd zonder risico's (noch controles zoals met num_rows) worden uitgevoerd.