Hallo, ik heb geprbeerd om een verbinding te maken met mijn mysql database en dan gegeven te tonen op een php pagina.
Maar het wil niet echt lukken.

Wat doe ik fout?
De user en paswoord heb ik niet meegegeven in het voorbeeld.

Dit is de code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>

<body>


<?php
$con=mysqli_connect("example.com.mysql", "username", "password", "database");              

$sql = ("SELECT * FROM ledenadministratie");
if (!$result = mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else 
{        
while ($row = mysql_fetch_assoc ($result)) 
{
echo $row['familienaam'] . "<br>";		
echo $row['voornaam'] . "</br>";				    
}
}

?>
<div>Geert</div>
</body>
</html>

En wat is lijn 43?

Sluit je niet te vroeg je connectie af?
Of roep je niet iets aan wat nog voor je connectie gebeurt?
Op sich is sluiten niet verplicht.
Als alle scripts uitgeraasd zijn wordt er een impliciete close() uitgevoerd. Als je aan het begin van je script (in de include) na het maken van een connectie meteen een close() uitvoert is je connectie weg / afgesloten. Da's zoiets als de hoorn op de haak gooien op het moment dat de telefoon overgaat :).
Laat anders eens zien hoe je de close-functie gebruikt.
Dit is mijn verbinding en staat in een aparte pagina:

code (php)

<?php
$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$dbname = '****';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);

if(! $conn ){
die('Could not connect: ' . mysqli_error());
}
echo 'Verbindig met database is in orde..';
mysqli_close($conn);
?>

en dit is de code op de pagina waar de gegevens moeten verschijnen:

code (php)

<?php
include 'connect.php';


$sql = "SELECT familienaam, voornaam FROM ledenadministratie";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
echo "Naam: " . $row["familienaam"]. " - Voornaam: " . $row["voornamm"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>

Blijkbaar zou ik de verbinding te vroeg sluiten na het oproepen van de gegevens.

[size=xsmall]Toevoeging op 05/09/2018 10:11:58:[/size]

Dit is de laatste foutmelding:

Verbindig met database is in orde..

Warning: mysqli::query(): Couldn't fetch mysqli in **** on line 33 0 results


De locatie heb ik weggelaten...(****)
Ja, na je connectie van je eerste script, op regel 12.

Persoonlijk raad ik ook af om een mix van procedureel en object-georienteerd te gebruiken. Ik zelf raad aan als voorkeur de objectgeoriënteerde versie gebruiken, dus met het pijltje.
Verdorie, dat is dan wel een hele domme fout, moest ik eigenlijk helemaal zelf gezien hebben.
Natuurlijk te veel gefocust op de pagina zelf waar ik de gegevens wil tonen... :-(

Ik heb het nog moeilijk om de (vernieuwde) code te schrijven, maar begrijp wel ongeveer wat het allemaal doet.
Heb vroeger heel veel ms access en vba gedaan...

Nu werkt het wel...

Dom van mij.
Nu kan ik verder werken aan de query's en aan de beveiliging.
Daarvoor zal ik de linkjes gebruiken die hoger in deze berichten staan.
Mocht ik daar in de problemen komen, dan hoor je mij.

Zeker bedankt voor de hulp en jullie geduld!!

Geert.

[size=xsmall]Toevoeging op 05/09/2018 10:22:41:[/size]

Waar ik nog niet helemaal mee in ben is de procedureel en object-georiënteerde programmering...
Mijn scriptje is dan nog niet veilig of goed genoeg?
Dat heeft niks met veiligheid te maken maar met manier van programmeren.

Als je de objectgeoriënteerde versie van MySQLi gebruikt, dan is dit ook veel makkelijker uit te breiden met eigen functies, of exceptions binnen PHP.

Zo heb ik in mijn eigen CMS hierop een functie bijgebouwd mee ik alle query's eenvoudig kan tellen.
** quoteknip **

ok, nu begrijp ik het...

Goede morgen, ik heb de opvragingen werkend en ondertussen al heel wat pagina's aangemaakt.
Elke pagina toont, voor een specufieke gebruiker, beperkte informatie uit de tabellen.
De pagina's op zich zijn beveiligd met een gebruikersnaam en paswoord om toegang te krijgen.

Mijn vraag, moeten in deze pagina's ook de php/mysql nog beveiligd worden?

Dit is een voorbeeld van een van de pagina's:

code (php)
<?php
include 'connect.php';

$sql = "SELECT * FROM ledenadministratie WHERE keuze1 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze2 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze3 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze4 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' ORDER BY familienaam, voornaam ASC";

$result = $conn->query($sql);

if ($result->num_rows > 0)
{
echo "<div id='titelsintekstbox'>Grizzly</div>";
while($row = $result->fetch_assoc())
echo "<div id='tekstbox-4' align='left'>"
."<div id='tekstbox' align='left'>"
."<strong>"."Naam:"."</strong>" . " ".$row['familienaam']." " . $row['voornaam']."</div>"
."<div id='tekstbox' align='left'>"
."<strong>"."E-mail:"."</strong>" . " ".$row['email1']."</div>"
."</div>";
}
else
{
echo "Geen resultaten gevonden voor uw opvraging";
}
?>

Geert bouckaert op 16/09/2018 10:23:05

.... en ondertussen al heel wat pagina's aangemaakt.
Elke pagina toont, voor een specufieke gebruiker, beperkte informatie uit de tabellen.

<?php
$sql = "SELECT * FROM ledenadministratie WHERE keuze1 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze2 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze3 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' OR keuze4 = 'Grizzly €70 (leeftijd: vanaf 18 jaar)' ORDER BY familienaam, voornaam ASC";
?>

Wat betekent keuze1, keuze2,keuze3, etc.? Weet je dat op een later tijdstip ook nog?
Je hebt er feitelijk 4x hetzelfde staan, alleen op een andere keuze. Lijkt me dat het handiger kan. Hoe is je database ingericht én hoe is je formulier opgezet?

Daarnaast geef je aan meerdere pagina's te hebben gemaakt. Toch niet allemaal losse pagina's met een vaste waarde bij keuzex?

Los daarvan begrijp ik niet goed dat je een tabel hebt ledenadministratie waaruit je iets met prijzen en leeftijden haalt.

Bovenstaande staat los van je vraag of de php/mysql nog beveiligd moet worden.

Reageren