Verbinding maken en tonen gegevens uit mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Geert bouckaert

geert bouckaert

02/09/2018 12:26:09
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<!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>

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.
Gewijzigd op 02/09/2018 18:25:48 door - Ariën -
 
PHP hulp

PHP hulp

05/12/2022 11:51:17
 
Thomas van den Heuvel

Thomas van den Heuvel

02/09/2018 13:43:58
Quote Anchor link
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().
 
- Ariën  -
Beheerder

- Ariën -

02/09/2018 14:05:34
Quote Anchor link
Je gebruikt wil verouderde MySQL-functies die in PHP 7 zijn verwijderd. Gebruik MySQLi.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/09/2018 14:23:54
Quote Anchor link
En inderdaad ja, je hebt een mix van mysql_-functies en mysqli_-functies. Dat gaat sowieso niet werken.
 
Geert bouckaert

geert bouckaert

03/09/2018 16:24:59
Quote Anchor link
Ok, verouderde commando's, dan moet ik op zoek naar de nieuwe...
Kunnen 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().


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
         $dbhost
= '*****';
         $dbuser = '*****';
         $dbpass = '*****';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
  
         if(! $conn ){
            die('Could not connect: ' . mysqli_error());
         }

         echo 'Connected successfully';
         mysqli_close($conn);
      ?>
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 16:54:09
Quote Anchor link
Deze functies heb je nodig. Lees ook de handleiding achter de linkjes door.

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.
 
Geert bouckaert

geert bouckaert

03/09/2018 17:27:47
Quote Anchor link
Ariën, bedankt voor de tips, ik probeer dit.
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...
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 17:31:46
Quote Anchor link
Achter de linkjes staan ook voorbeeldjes (examples).
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 -
 
Geert bouckaert

geert bouckaert

03/09/2018 17:42:08
Quote Anchor link
Ok, ik ga ermee aan de slag..

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)
PHP script in nieuw venster Selecteer het PHP script
1
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();
?>
Gewijzigd op 03/09/2018 21:16:05 door geert bouckaert
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 21:31:14
Quote Anchor link
Wat werkt er niet aan? Wat gebeurt er nu?
 
Geert bouckaert

geert bouckaert

03/09/2018 21:37:02
Quote Anchor link
Ik krijg een foutmelding dat er geen gegevens beschikbaar zijn.

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
 
- Ariën  -
Beheerder

- Ariën -

03/09/2018 21:41:24
Quote Anchor link
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.
Gewijzigd op 03/09/2018 21:42:24 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

03/09/2018 22:28:14
Quote Anchor link
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 :).
 
- Ariën  -
Beheerder

- Ariën -

05/09/2018 10:06:39
Quote Anchor link
Laat anders eens zien hoe je de close-functie gebruikt.
 
Geert bouckaert

geert bouckaert

05/09/2018 10:09:55
Quote Anchor link
Dit is mijn verbinding en staat in een aparte pagina:

code (php)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
?>


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...(****)
 
- Ariën  -
Beheerder

- Ariën -

05/09/2018 10:12:24
Quote Anchor link
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.
Gewijzigd op 05/09/2018 10:15:43 door - Ariën -
 
Geert bouckaert

geert bouckaert

05/09/2018 10:19:49
Quote Anchor link
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.

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?
 
- Ariën  -
Beheerder

- Ariën -

05/09/2018 11:05:38
Quote Anchor link
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.
 
Geert bouckaert

geert bouckaert

05/09/2018 11:10:16
Quote Anchor link
** quoteknip **

ok, nu begrijp ik het...
Gewijzigd op 05/09/2018 11:16:49 door - Ariën -
 
Geert bouckaert

geert bouckaert

16/09/2018 10:23:05
Quote Anchor link
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)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
        }

    ?>
 
Obelix Idefix

Obelix Idefix

16/09/2018 10:42:41
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";        
?>

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
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.