Weten of er records in een dbase_table staan
Ik wil een nieuwe functie doen, maar ik snap deze nog niet geheel.
BV: Users overzicht.
Hij moet eerst kijken of er wel records in de table van users records zijn.
Zo niet, geef aan geen records found, Zo wel, laat de records zien.
Ik weet wel hoe ik records kan opvragen en die outputten, maar om eerst te kijken of er wel records zijn, daar ben ik nog niet zo mee bezig geweest.
Kan iemand in het kort vertellen hoe het gedaan wordt en waar ik een goede tutorial kan vinden hierover?
BV: Users overzicht.
Hij moet eerst kijken of er wel records in de table van users records zijn.
Zo niet, geef aan geen records found, Zo wel, laat de records zien.
Ik weet wel hoe ik records kan opvragen en die outputten, maar om eerst te kijken of er wel records zijn, daar ben ik nog niet zo mee bezig geweest.
Kan iemand in het kort vertellen hoe het gedaan wordt en waar ik een goede tutorial kan vinden hierover?
Ik ga appels kopen bij de supermarkt. Ik kom bij de supermarkt aan, loop door de schuifdeur naar de stelling waar de appels liggen. Ik grijp met m'n hand erin. Niks! Er zijn geen appels! Ik ging appels halen, maar het resultaat was dat ik met lege handen stond.
Succes ...
Succes ...
Okay, Ozzie dat is dus een verhaal waar ik niks aan heb.
Uw vraag is ook weinig met te doen :)
Vertel al eens waarom dbase en niet mysql pdo of maria
dbase is versouderd en wordt sinds de jaren 90 niet veel meer gebruikt.
Mogelijks bedoel je gewoon database. schrijf dat dan ook.
Uw vraag voor zover ik begrijp
maak connectie met een database
controleer of deze gelukt is
bouw uw query
voor hem uit
controleer of de query gelukt is
kijk of er records zitten. via mysqli doe je dat via mysqli_num_rows($result)
Haal uw records op en loop er door.
Jan
Vertel al eens waarom dbase en niet mysql pdo of maria
dbase is versouderd en wordt sinds de jaren 90 niet veel meer gebruikt.
Mogelijks bedoel je gewoon database. schrijf dat dan ook.
Uw vraag voor zover ik begrijp
maak connectie met een database
controleer of deze gelukt is
bouw uw query
voor hem uit
controleer of de query gelukt is
kijk of er records zitten. via mysqli doe je dat via mysqli_num_rows($result)
Haal uw records op en loop er door.
Jan
Zomaar een voorbeeld.
En omdat zoeken op de interwebs ook niet makkelijk is, de uitleg :
https://www.php.net/manual/en/mysqli-result.num-rows.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include ('connect.php'); // = new mysqli();
$query = "SELECT * FROM users ORDER BY registratiedatum, account;";
$result = $db->query( $query );
if ( $result->num_rows > 0 ):
while ( $row = $result->fetch_object() ):
?>
<tr>
<td><?php echo $row->id; ?></td>
<td><code><a href="UserUpdate.php?account=<?php echo $row->account; ?>"><?php echo $row->account; ?></a></code></td>
<td><?php echo $row->registratiedatum; ?></td>
<td><?php echo $row->naam; ?></td>
<td><?php echo $row->adres; ?></td>
<td><?php echo $row->woonplaats; ?></td>
</tr>
<?php
endwhile;
else:
?>
<tr><td colspan="6" style="text-align: center;">Geen data aanwezig</td></tr>
<?php
endif;
?>
include ('connect.php'); // = new mysqli();
$query = "SELECT * FROM users ORDER BY registratiedatum, account;";
$result = $db->query( $query );
if ( $result->num_rows > 0 ):
while ( $row = $result->fetch_object() ):
?>
<tr>
<td><?php echo $row->id; ?></td>
<td><code><a href="UserUpdate.php?account=<?php echo $row->account; ?>"><?php echo $row->account; ?></a></code></td>
<td><?php echo $row->registratiedatum; ?></td>
<td><?php echo $row->naam; ?></td>
<td><?php echo $row->adres; ?></td>
<td><?php echo $row->woonplaats; ?></td>
</tr>
<?php
endwhile;
else:
?>
<tr><td colspan="6" style="text-align: center;">Geen data aanwezig</td></tr>
<?php
endif;
?>
En omdat zoeken op de interwebs ook niet makkelijk is, de uitleg :
https://www.php.net/manual/en/mysqli-result.num-rows.php
Gewijzigd op 06/04/2023 18:36:39 door Adoptive Solution
Dank je voor een simpele voorbeeld, ik zal de uitleg zeker even bekijken.
Voor de handigheid heb ik -met dank aan WouterJ- een 'boilerplate' voorbeeld op Github gepubliceerd:
https://github.com/arienclaij/sql-boilerplate
https://github.com/arienclaij/sql-boilerplate
Arno van Zanten op 06/04/2023 17:50:28:
Okay, Ozzie dat is dus een verhaal waar ik niks aan heb.
Als je er niks mee doet of überhaupt probeert te bedenken wat ik ermee zou kunnen bedoelen, dan is het inderdaad een verhaal waar je niks aan hebt. Had je echter wat langer nagedacht, dan had je je kunnen bedenken dat ik niet zomaar iets opschrijf en er dus waarschijnlijk een bedoeling achter zit.
Mijn eerste bedoeling is vooral om je zelf te laten nadenken. Je bent iemand die heel erg snel naar hulp vraagt. En dat blijft zo, als je niet van plan bent om zelf meer moeite te doen en daardoor zelfredzamer te worden. Mijn tweede bedoeling is om je een antwoord te geven op een vraag op een manier waardoor je die die volgende keer niet meer vergeet.
Terug naar mijn verhaal. Je vraag was, hoe weet ik of er records zijn. Mijn verhaal: hoe weet je of er appels zijn? Door naar de supermarkt te gaan en te graaien in de bak met appels. Als je gegraaid hebt en je hebt geen appels in je hand, dan zijn er blijkbaar geen appels.
Terug naar jouw vraag -> door de records op te halen en te kijken of er iets in zit. Als de resultaatset leeg is, waren er blijkbaar geen records. Je hoeft dus helemaal niks spannends te doen. Je voert gewoon je query uit zoals je dat altijd doet. Als er records aanwezig zijn dan zitten ze in de resultaatset die je terugkrijgt. Als er geen records (appels) zijn, dan is de resultaatset leeg.
Vind je het nu nog steeds een nietszeggend verhaal? Of is het kwartje gevallen?
Ik heb deze code nu gedaan, nu is mijn vraag of ik deze wel goed toepas?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$sql = 'SELECT * FROM Test';
$result = mysqli_query($connect, $sql);
$row = mysqli_num_rows($reslut);
if($rows == 0) {
echo "No results found";
}else{
$sql = 'SELECT * FROM Test ORDER BY ID ASC';
$result = mysqli_query($connect, $sql);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($connect);
?>
$sql = 'SELECT * FROM Test';
$result = mysqli_query($connect, $sql);
$row = mysqli_num_rows($reslut);
if($rows == 0) {
echo "No results found";
}else{
$sql = 'SELECT * FROM Test ORDER BY ID ASC';
$result = mysqli_query($connect, $sql);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);
mysqli_free_result($result);
mysqli_close($connect);
?>
>> nu is mijn vraag of ik deze wel goed toepas?
Heb je het al getest?
Heb je het al getest?
Ja, maar krijg geen results te zien of laat staan de message "No results found"
Toevoeging op 06/04/2023 21:07:01:
Typo, gevonden en opgelost.
Toevoeging op 06/04/2023 21:07:01:
Typo, gevonden en opgelost.
Reageer eerst eens op mijn eerdere vraag:
Vind je het nu nog steeds een nietszeggend verhaal? Of is het kwartje gevallen?
>> Ja, maar krijg geen results te zien of laat staan de message "No results found"
Dus wat ga je dan doen?
Vind je het nu nog steeds een nietszeggend verhaal? Of is het kwartje gevallen?
>> Ja, maar krijg geen results te zien of laat staan de message "No results found"
Dus wat ga je dan doen?
Ozzie, heb je verhaal begrepen.
Nu snapte ik je verhaal, wel humoristisch en sarcastisch, maar ja ik snap het nu.
En de fout is verholpen.
Nu snapte ik je verhaal, wel humoristisch en sarcastisch, maar ja ik snap het nu.
En de fout is verholpen.
>> Nu snapte ik je verhaal, wel humoristisch en sarcastisch, maar ja ik snap het nu.
Mooi ;-) Dat sarcastische viel wel mee, maar ben blij dat je er de humor van inziet. :-)
>> En de fout is verholpen.
Ik neem aan dat je je $reslut had ontdekt? Een reslut is wat anders dan een result :-)
Je opzet is echter nog niet oké. Oplossingen zijn al aangedragen, dus even beter je best doen.. ;-)
Mooi ;-) Dat sarcastische viel wel mee, maar ben blij dat je er de humor van inziet. :-)
>> En de fout is verholpen.
Ik neem aan dat je je $reslut had ontdekt? Een reslut is wat anders dan een result :-)
Je opzet is echter nog niet oké. Oplossingen zijn al aangedragen, dus even beter je best doen.. ;-)
Ik zal zeker mijn best doen, komt traag op gang, maar als de diesel eenmaal loopt, dan gaat ie door totdat alles perfect werkt.
Als je bang bent om spelfouten te maken in variabelen, installeer dan bijvoorbeeld Netbeans IDE. Deze scant al je PHP-files in je gemaakt project af, en zorgt voor auto-complete als je een variabele start door $ in te typen. Notepad++ is te beperkt en mist een hoop intelligentie.
beetje zonde om 2x die query uit te laten voeren.
zet op regel 3 de query die je wilt hebben, inclusief order by.
en verwijder regels 9 en 10.
en ik zou close ook weglaten. De verbinding sluit vanzelf als de script klaar is
zet op regel 3 de query die je wilt hebben, inclusief order by.
en verwijder regels 9 en 10.
en ik zou close ook weglaten. De verbinding sluit vanzelf als de script klaar is
Een veelgebruikte query om het aantal records in een tabel te achterhalen is
wat de voorkeursmethode is met PDO, zie voorbeeld #2.
In PHP kan je van elke query het aantal opgehaalde records opvragen vanuit de database driver:
- MySQL / MariaDB: mysqli_result::$numrows
- PostgreSQL: pg_num_rows()
- etc...
wat de voorkeursmethode is met PDO, zie voorbeeld #2.
In PHP kan je van elke query het aantal opgehaalde records opvragen vanuit de database driver:
- MySQL / MariaDB: mysqli_result::$numrows
- PostgreSQL: pg_num_rows()
- etc...
Ivo P op 07/04/2023 07:42:56:
beetje zonde om 2x die query uit te laten voeren.
Zal het eens proberen toe te passen
Ivo P op 07/04/2023 07:42:56:
zet op regel 3 de query die je wilt hebben, inclusief order by.
en verwijder regels 9 en 10.
en ik zou close ook weglaten. De verbinding sluit vanzelf als de script klaar is
en verwijder regels 9 en 10.
en ik zou close ook weglaten. De verbinding sluit vanzelf als de script klaar is
Ok




