Controleer of er ook maar 1 record is in de tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bryan De Baar

Bryan De Baar

21/03/2020 01:16:38
Quote Anchor link
Hi,

Ik probeer een controle te maken of er tenminste 1 of meer records zijn.
Helaas gaat dit niet helemaal goed :(
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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';
    }

?>
 
PHP hulp

PHP hulp

05/12/2020 13:08:28
 
- Ariën -
Beheerder

- Ariën -

21/03/2020 01:18:56
Quote Anchor link
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 -
 
Ward van der Put
Moderator

Ward van der Put

21/03/2020 08:49:44
Quote Anchor link
Records tellen doe je bij voorkeur met een vorm van SELECT COUNT(), bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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];
?>
 
Jeroen van Rensen

Jeroen van Rensen

21/03/2020 11:21:51
Quote Anchor link
Hallo, je kunt deze query gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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!
 
- Ariën -
Beheerder

- Ariën -

21/03/2020 12:17:55
Quote Anchor link
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 -
 
Thomas van den Heuvel

Thomas van den Heuvel

21/03/2020 14:54:14
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.