Weten of er records in een dbase_table staan
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?
Succes ...
Okay, Ozzie dat is dus een verhaal waar ik niks aan heb.
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
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.
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?
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);
?>
Heb je het al getest?
Toevoeging op 06/04/2023 21:07:01:
Typo, gevonden en opgelost.
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?
Nu snapte ik je verhaal, wel humoristisch en sarcastisch, maar ja ik snap het nu.
En de fout is verholpen.
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.
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
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