Verbinding maken en tonen gegevens uit mysql
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:
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
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!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>
<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>
Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 02/09/2018 18:25:48 door - Ariën -
Slaagt het maken van een connectie in eerste instantie wel? Dit kun je controleren met mysqli_connect_error().
Je gebruikt wil verouderde MySQL-functies die in PHP 7 zijn verwijderd. Gebruik MySQLi.
i_-functies. Dat gaat sowieso niet werken.
En inderdaad ja, je hebt een mix van mysql_-functies en mysqlKunnen jullie mij op weg zetten?
Dank u,
Geert.
Toevoeging op 03/09/2018 16:36:44:
Thomas van den Heuvel op 02/09/2018 13:43:58:
Waaruit blijkt dat het fout gaat? Welke foutmelding(en) krijg je?
Slaagt het maken van een connectie in eerste instantie wel? Dit kun je controleren met mysqli_connect_error().
Slaagt het maken van een connectie in eerste instantie wel? Dit kun je controleren met mysqli_connect_error().
Ik kreeg geen enkele foutmelding, gewoon een leeg scherm.
Foutmelding stond aan...
Toevoeging op 03/09/2018 16:50:14:
Ondertussen e.a. opgezocht en gevonden.
De verbinding is nu wel in orde.
Nu zoeken we verder om records te tonen op de pagina's...
Mocht ik er niet geraken, kan ik hulp krijgen van jullie?
Dit heb ik gebruikt:
mysqli_query om je queries uit te voeren
mysqli_fetch_assoc om de results van je query te fetchen tot een array, zodat je wat met de data kan doen.
mysqli_error om de fouten in je queries mee op te halen.
Verder niet onbelangrijk:
mysqli_num_rows om je records te tellen, en om te bepalen of je xx records hebt (in combinatie met een if-statement).
mysqli_real_escape_string om de invoer van je queries te escapen tegen SQL-injection.
Maar ik denk dat dit voor mij niet zo simpel zal zijn...
Ken je iemand die mij verder kan helpen?
Om voorbeeldjes te maken die ik dan kan aanpassen of uitbreiden...
De opbouw wat je had is hetzelfde, alleen de functies zijn net iets anders.
Gewijzigd op 03/09/2018 17:32:34 door - Ariën -
Toevoeging op 03/09/2018 21:15:08:
Heb al enkele dingetjes geprobeerd maar tot nu toe nog niet werkend gekregen...
Dit was mijn poging:
code php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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();
?>
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();
?>
Gewijzigd op 03/09/2018 21:16:05 door geert bouckaert
Wat werkt er niet aan? Wat gebeurt er nu?
Couldn't fetch mysqli in ******Weergave.php on line 33 0 results Warning: mysqli::close(): Couldn't fetch mysqli in ******Weergave.php on line 43
Geert
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.
Gewijzigd op 03/09/2018 21:42:24 door - Ariën -
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.
code (php)
Code (php)
en dit is de code op de pagina waar de gegevens moeten verschijnen:
code (php)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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();
?>
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.
Toevoeging op 05/09/2018 10:11:58:
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...(****)
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.
Gewijzigd op 05/09/2018 10:15:43 door - Ariën -
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.
Toevoeging op 05/09/2018 10:22:41:
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?
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.
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)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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";
}
?>
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.
Elke pagina toont, voor een specufieke gebruiker, beperkte informatie uit de tabellen.
Code (php)
1
2
3
2
3
<?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";
?>
$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.
Gewijzigd op 16/09/2018 10:44:55 door Obelix Idefix