Table Row Count in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Hurkmans

Niels Hurkmans

12/05/2015 10:37:22
Quote Anchor link
Beste mede forum gebruikers,

Voor mijn website wil ik een pagina maken waar het aantal configuratie items in een database wordt weergegeven.
Dus gewoon een simpele tekst die zegt: 'Er zijn 75 configuraties'.
Ik heb op internet al zitten zoeken maar daar ben ik niet veel wijzer van geworden.

Kan iemand mij daar bij helpen?


Groeten,

Niels
 
PHP hulp

PHP hulp

17/05/2024 00:24:10
 
- Ariën  -
Beheerder

- Ariën -

12/05/2015 10:48:49
Quote Anchor link
SELECT COUNT(1) FROM configuraties
 
Ramon van Dongen

Ramon van Dongen

12/05/2015 11:00:53
Quote Anchor link
Of als je toch al ergens alle configuraties ophaalt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

// hier de select query die je toch al doet

echo 'Er zijn '.mysqli_num_rows($query).' configuraties';

?>
 
Niels Hurkmans

Niels Hurkmans

12/05/2015 11:00:55
Quote Anchor link
Dit heb ik tot nu toe:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
            
 <?php
    include('DBConfig.php');
    db_connect();
    echo 'Aantal Configuraties';
    $query = "SELECT * FROM configuraties";
    $result = mysqli_query($mysqli,$query);
    $rows = mysqli_num_rows($result);
    echo $row[0];
  ?>

[/CODE}
 
Maar bij het uitvoeren krijg ik de melding: Call to undefined function db_connect() ?
 
Ramon van Dongen

Ramon van Dongen

12/05/2015 11:01:57
Quote Anchor link
wordt in DBConfig.php de functie db_connect(); wel aangemaakt dan?

probeer anders de database connectie eens zonder in een extern document en met een functie. Gewoon op de simpelste manier.
Gewijzigd op 12/05/2015 11:08:14 door Ramon van Dongen
 
- Ariën  -
Beheerder

- Ariën -

12/05/2015 11:11:08
Quote Anchor link
Ramon van Dongen op 12/05/2015 11:00:53:
Of als je toch al ergens alle configuraties ophaalt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

// hier de select query die je toch al doet

echo 'Er zijn '.mysqli_num_rows($query).' configuraties';

?>

In de praktijk werkt dit langzamer. Ikzelf raad COUNT() aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
// hier je connectie als $con...

$sql = "SELECT COUNT(1) AS aantal FROM configuraties";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_field($result);
echo "Er zijn ". $row->aantal. "configuraties";
?>
Gewijzigd op 12/05/2015 11:17:36 door - Ariën -
 
Ramon van Dongen

Ramon van Dongen

12/05/2015 11:13:05
Quote Anchor link
Quote:
In de praktijk werkt dit langzamer. Ikzelf raad COUNT() aan.

Klopt, maar stel dat je toch alles al ophaalt om alle configuraties onder elkaar te laten zien en er boven wilt zetten hoeveel het er zijn.
 
- Ariën  -
Beheerder

- Ariën -

12/05/2015 11:19:07
Quote Anchor link
Ramon van Dongen op 12/05/2015 11:13:05:
Quote:
In de praktijk werkt dit langzamer. Ikzelf raad COUNT() aan.

Klopt, maar stel dat je toch alles al ophaalt om alle configuraties onder elkaar te laten zien en er boven wilt zetten hoeveel het er zijn.

Dan denk ik dat het nog steeds zwaar blijft. Vooral als je met grote aantallen werkt.
Daarom is het beste om dergelijke berekeningen zo veel mogelijk via de database te doen, als het even kan.
 
Niels Hurkmans

Niels Hurkmans

12/05/2015 12:18:06
Quote Anchor link
Bedankt voor de reacties, dat waardeer ik!

Hoe werkt die $con precies? Ik ben echt nog een complete noob op het gebied van PHP..
 
- Ariën  -
Beheerder

- Ariën -

12/05/2015 12:23:27
Quote Anchor link
$con stelt de connectie van je databaseverbinding voor, die je als eerste defineert.
Voor functies zoals mysqli_query en mysqli_real_escape_string() ben je verplicht om $je connectie te noemen. Ik noem hem voor de duidelijkheid altijd $con.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$con =  mysqli_connect("localhost","username","password","databasenaam");
Gewijzigd op 12/05/2015 12:24:01 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/05/2015 12:24:13
Quote Anchor link
$con is je connectie met de database server. Deze variabele dien je aan te maken met de mysqli_connect() functie. Zie hiervoor de vele voorbeelden die te vinden zijn zoals op phptuts.nl
Gewijzigd op 12/05/2015 12:25:40 door Frank Nietbelangrijk
 
Niels Hurkmans

Niels Hurkmans

12/05/2015 12:36:26
Quote Anchor link
Bedankt!

Ik krijg nu de melding Notice: Undefined property: stdClass::$aantal als ik 'm uitvoer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php  


$con
=  mysqli_connect("localhost","root","","cmdb");
$sql = "SELECT COUNT(1) AS aantal FROM configuraties";
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_field($result);
echo "Er zijn ". $row->aantal. "configuraties";
?>

[/CODE]
Gewijzigd op 12/05/2015 12:37:03 door Niels Hurkmans
 
- Ariën  -
Beheerder

- Ariën -

12/05/2015 15:53:49
Quote Anchor link
Voer die query eens uit in PhpMyAdmin? Misschien is de query in $result wel ergens fout, waardoor deze niet de resutl geeft, maar een boolean (met false).
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/05/2015 18:06:28
Quote Anchor link
Ik mis nogal wat foutafhandelingen.

- Wie zegt dat de verbinding met mysqli_connect() ook goed opgezet is? Je zou iets als dit moeten hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$con
= mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$con) {
    echo 'Connectie fout (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error();
}


echo "Success...\n";

mysqli_close($link);
?>


Hetzelfde geldt voor mysqli_query. Een query kan mislukken en dit kun je controlleren. Kijk eens op deze pagina en dan onder het kopje Return Values.
 
Niels Hurkmans

Niels Hurkmans

13/05/2015 12:02:49
Quote Anchor link
- Aar - op 12/05/2015 15:53:49:
Voer die query eens uit in PhpMyAdmin? Misschien is de query in $result wel ergens fout, waardoor deze niet de resutl geeft, maar een boolean (met false).


Ik heb de query uitgeprobeerd in PHPMyAdmin en hij blijkt gewoon te werken?
 
Thomas van den Heuvel

Thomas van den Heuvel

13/05/2015 12:26:52
Quote Anchor link
mysqli_fetch_field is meer bedoeld om allerlei meta data omtrent een resultaatkolom op te halen.

Gebruik gewoon fetch_row en pak de eerste kolom (index 0)?
Gewijzigd op 13/05/2015 12:28:37 door Thomas van den Heuvel
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/05/2015 18:43:35
Quote Anchor link
of fetch_assoc. Dan blijft je code wat beter leesbaar.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $row[0]; //what the fuck is column 0 ?
?>


vs

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $row['aantal']; // ahhh het gaat over een aantal :-)
?>
 
- Ariën  -
Beheerder

- Ariën -

13/05/2015 18:50:34
Quote Anchor link
Thomas van den Heuvel op 13/05/2015 12:26:52:
mysqli_fetch_field is meer bedoeld om allerlei meta data omtrent een resultaatkolom op te halen.

Gebruik gewoon fetch_row en pak de eerste kolom (index 0)?

Die naamgevingen zijn soms zeer verwarrend. Bij de oude depricated MySQL-functies had je gewoon mysql_result(), maar dat gaat niet op bij MySQLi. De fetch_row() is een stuk beter inderdaad.
 



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.