- Je kijkt of je connectie ipv je query gelukt is (?), en dan toon je een error? Dat is niet logisch.
- fetch_assoc($con) is onzin, je doet dit al later op de juiste manier.
Zorg voor goede opbouw, dit wat bovenaan staat is echt behoorlijk fout.
Plaats je query gewoon voor je mysqli_fetch_assoc met juiste controle.
<?php
/*
* MySQLi CONNECTIE BESTAND
* In dit bestand maken we de verbinding met een MySQL
* server doormiddel van MySQLi functies. In deze
* functie zit meteen het selecteren van een db, dus
* dat doen we ook meteen.
*/
/* Error-Handling
* ==============
* Als eerst maken we een functie voor het beheren van
* errors. Hiermee kunnen we makkelijk het probleem vinden
* als er iets mis is.
* Zodra een script online is wil je niet dat de gebruiker
* de foutmeldingen krijgt, vandaar dat we hier error_log
* gebruiken als DEBUG_MODE false is.
*/
// DEBUG_MODE, deze wordt false als het script online geplaatst is
define('DEBUG_MODE', true);
/*
* We slaan alle errors op in $errors. Deze lezen we in het
* script uit in via een foreach loop
*/
$errors = Array();
if( DEBUG_MODE )
{ // DEBUG_MODE staat aan
// Zorg dat we alle errors te zien krijgen
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_NOTICE);
}
else
{
// DEBUG_MODE uit dus geen errors tonen
ini_set('display_errors', 'Off');
error_reporting(0);
}
function SQLerror( $error, $message, $file )
{
// $error is het resultaat van mysql_error()
// $message is de tekst die bij de error staat,
// deze tekst zullen we gebruiken als DEBUG_MODE uit staat
// $file is het resultaat van __FILE__ in het bestand van de error
global $errors; // Zorg dat de error variabele die we net hebben gemaakt in deze functie komt
if( DEBUG_MODE )
{ # DEBUG_MODE aan => sla de errors op zodat we ze later kunnen tonen
$errors[] = $message.': '.$error;
}
else
{ # DEBUG_MODE uit => log de errors en sla alleen de $message op
// We slaan niet alleen de error op, maar ook het bestand en de datum
$log = $file.' ['.date('H:i:s').'] '.$error;
error_log($log);
$errors[] = $message;
}
}
/* CONNECTIE MET MySQL SERVER
* ==========================
*/
$sqlLink = mysqli_connect('localhost', 'root', 'usbw', 'sr_system');
// Verander de host, inlog naam, wachtwoord en sql-boilerplate (db) in de juiste gegevens
if( $sqlLink === false )
{
// Als mysqli_connect false returned is er iets mis gegaan, gebruik de net gemaakte error functie
// Omdat het de connectie betreft gebruiken we mysqli_connect_error()
SQLerror( mysqli_connect_error(), 'We kunnen geen verbinding aanmaken', __FILE__ );
}
Aangepast. In de boiler krijg ik geen foutmeldingen
[size=xsmall]Toevoeging op 15/05/2022 15:34:26:[/size]
Een aanzet zou wel welkom zijn. We zij al bijna hier mee 24 uur verder maar nog geen tip van de sluier. En met tip bedoel ik code!
Je moet niet alleen maar kopiëren en plakken, maar je moet ook goed bewust zijn wat er precies gebeurd en wat je script doet.
Je hebt nu de boilertemplate met de connectie die lijkt te werken.
Nu aan jouw om dit verder uit te bouwen om je data op de juiste manier te tonen. Met mysqli_query, mysqli_num_rows, mysqli_fetch_assoc en mysqli_error. In de boilertemplate vind je ook hoe INSERT, SELECT, UPDATE en DELETE toegepast kunnen worden.
Tja, als je niet controleert wat je query doet blijven we nog heel lang doorgaan.
Misschien is het handig om dit topic van begin af aan even opnieuw door te lezen.
Samenvatting:
Je query mislukt, en je controleert daar niet op. En daarna ga je er maar in je script van uit dat het werkt. Dat is niet de juiste werkwijze.
[size=xsmall]Toevoeging op 15/05/2022 17:08:54:[/size]
Hoe moet ik dan een controle inbouwen?
SELECT * FROM pagination. Dat levert meer resultaen op. Dat is volgens mij de hele tabel. Echter hoe dat er uit moet krijgen ik heb geen idee. Wellicht hebben jullie een voorbeeld?
Kijk eens naar de boilertemplate. Met een simpele if/else structuur op je $result (je mysqli_query)kan je controleren of het werkt.
Bij mysqli_query(...) is het: False, als het mislukt (toon dan een foutmelding)
Of anders krijg je een result, waarna je verder kan werken met mysqli_fetch_assoc.
<?php
// Voer hier query uit
if( $sQuery === false) {
// De query is niet gelukt, toon error
} else {
// De query is gelukt. Voer vanaf hier de rest uit!