Ga naar inhoud


Hoe haal de data uit mijn PHP5 / MySQL database


Hendrik6073

Aanbevolen berichten

Hoi,

 

Ik ben mij aan het inlezen in PHP in combinatie met en MySql. E.e.a. draait

op MS IIS.

 

Omdat ik van scripting verder weinig kaas heb gegeten ben ik maar onderaan begonnen en wel met een e-book php en mysql for dummies (ahum)

 

Nu heb ik een mbv een query een database kunnen maken, tabellen en velden toegevoegd. Zelfs het toevoegen van data vanuit een HTML formulier gaat goed.

 

Ik kan met een query SELECT * FROM Logindata een selectie uitvoeren en de data zien. (vanuit de mysql query browser)

 

Het lukt mij echter met geen mogelijkheid om deze data via een HTML formlier op te vragen.

 

Ik doe dit als volgt;

 

$query="SELECT * FROM LoginData";

$result=MYSQL_QUERY($query)OR DIE ("Kon verzoek niet uitvoeren");

 

Vervolgens ben ik het spoor bijster. Ik lees iets over

 

$row = mysql_fetch_array($result);

 

Maar hoe ik dit ook toepas, ik krijg geen enkel resultaat.

zelfs een simpele ECHO van $result geeft geen resultaat

 

Mijn vraag;

 

- Is er een voorbeeld te geven hoe dit in te passen ?

- Kan het zijn dat fouten in de HTML code de oorzaak van de fout zijn ?

(er staat overigens amper HTML code in)

- Zit ik misschien met een versie conflict ? (ivm mysql vs mysqli)

 

Bij voorbaat dank !

 

excusus als mijn vraag misschien op onderdelen onvolledig is, zoals gezegd

ik ben net pas gestart. <img src="/forums/images/graemlins/confused.gif" alt="" />

Link naar reactie
Delen op andere sites


Voor je iets kan gebruiken (printen) moet je de array uitlezen.

Als voorbeeld een tabel 'formulier' met 4 velden: id, naam, onderwerp en bericht

 

Je kan bij 'or die' beter mysql_error() functie meegeven als waarde, zo kan je zien welke fout er optreed.

 

Code:
 <?php//verbinden met de database$link = mysql_connect("host", "database_gebruiker", "wachtwoord_database"); // host is meestal 'localhost'mysql_select_db ("naam_database");//query op de database$query = "SELECT * FROM formulier"; $sql = mysql_query ($query) or die (mysql_error());//uitlezen van de arraywhile ($row= mysql_fetch_array ($sql)){    $id = $row['id'];    $naam = $row['naam'];    $onderwerp = $row['onderwerp'];    $bericht = $row['bericht'];        }//Vanaf nu kan je de inhoud van de database gaan gebruiken echo $id, $naam, $onderwerp, $bericht;?> 

 

Kijk ook eens op www.php.net

Daar vind je alles wat php inhoud

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Citaat:
Effe die echo boven het einde van de while loop zetten (2 regels naar boven verplaatsen) dan zie je ze allemaal.


Waar zouden we zijn zonder dit forum <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" /> <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" /> <img src="/forums/images/graemlins/xyxthumbs.gif" alt="" />

Dank aan allen !
Link naar reactie
Delen op andere sites

Citaat:
Effe die echo boven het einde van de while loop zetten (2 regels naar boven verplaatsen) dan zie je ze allemaal.


Inderdaad, mijn fout. <img src="/forums/images/graemlins/blush.gif" alt="" />
Alles moet binnen de while loop staan.

Als je het in html wil zetten doe je dit zo

Code:
 <?php//verbinden met de database$link = mysql_connect("host", "database_gebruiker", "wachtwoord_database"); // host is meestal 'localhost'mysql_select_db ("naam_database");//query op de database$query = "SELECT * FROM formulier"; $sql = mysql_query ($query) or die (mysql_error());//uitlezen van de arraywhile ($row= mysql_fetch_array ($sql)){    $id = $row['id'];    $naam = $row['naam'];    $onderwerp = $row['onderwerp'];    $bericht = $row['bericht'];           $uitgelezen = "$id<br>$naam<br>$onderwerp<br>$bericht";    }?><html><head></head><body><?php print $uitgelezen; ?></body></html> 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Zo krijgt ie nog alleen de laatste row te zien.

Ofwel je voegt een punt toe:

[color:"blue"] $uitgelezen .= "$id<br>$naam<br>$onderwerp<br>$bericht"; [/color]

 

Of je gooit de opzet een beetje om:

Code:
<?php//verbinden met de database$link = mysql_connect("host", "database_gebruiker", "wachtwoord_database"); // host is meestal 'localhost'mysql_select_db ("naam_database");?><html><head></head><body><?php//query op de database$query = "SELECT * FROM formulier"; $sql = mysql_query ($query) or die (mysql_error());//uitlezen van de arraywhile ($row= mysql_fetch_array ($sql)){    echo $row['id']."<br>".            $row['naam']."<br>".            $row['onderwerp']."<br>".            $row['bericht'];    }?></body></html> 
Link naar reactie
Delen op andere sites

Damm, ik blijf fouten typen in mijn code <img src="/forums/images/graemlins/blush.gif" alt="" />

Nu heb ik dat puntje voor de = weer vergeten.

 

Ik ben geen voorstander van php code binnen de html code (tenzij het niet anders kan)

 

Ik laat liever eerst alles verwerken en dan pas html output. Zo kan je voorkomen dat bezoekers foutmeldingen te zien krijgen als er iets misloopt met bijvoorbeeld het connecten naar de database.

 

Als om één of andere reden de query op de database mislukt laat ik een andere pagina weergeven dmv header().

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Je wil je resultaten dus in een tabel weergeven.

 

Heel simpel

in de while loop geef je alles op en laat het uitprinten in de body.

 

De tabel maak je aan, de rows en colloms maak je aan in php.

 

Code:
 <?php//verbinden met de database$link = mysql_connect("host", "database_gebruiker", "wachtwoord_database"); // host is meestal 'localhost'mysql_select_db ("naam_database");//query op de database$query = "SELECT * FROM formulier"; $sql = mysql_query ($query) or die (mysql_error());//uitlezen van de arraywhile ($row= mysql_fetch_array ($sql)){    $id = $row['id'];    $naam = $row['naam'];    $onderwerp = $row['onderwerp'];    $bericht = $row['bericht'];           $uitgelezen .= "<tr>                         <td>$id</td>                       </tr>                       <tr>                         <td>$naam</td>                       </tr>                       <tr>                         <td>$ondewerp</td>                       </tr>                        <tr>                         <td>$bericht</td>                       </tr>";    }?><html><head></head><body><table width="400" border=1><?php print $uitgelezen; ?></table></body></html> 

 

Nu wordt een tabel weergegven met de gegevens erin.

 

Je kan dus overal in je html code php gaan gebruiken zolang het maar tussen de php tags staat.

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Deze code is ook niet goed.

De juiste volgorde

 

maak verbinding met de database

maak de query

open de tabel

voer de query uit(de while loop)

sluit de tabel

 

<html>

<head>

</head>

<body>

<?php

$link = mysql_connect("host", "database_gebruiker", "wachtwoord_database"); // host is meestal 'localhost'

mysql_select_db ("naam_database");

$query = "SELECT * FROM formulier";

$sql = mysql_query ($query) or die (mysql_error());

echo "<table border=\"1\">";

while ($row= mysql_fetch_array ($sql))

{

echo "<tr><td>id</td><td>".$row['id']."</td></tr>";

echo "<tr><td>id</td><td>".$row['naam']."</td></tr>";

echo "<tr><td>id</td><td>".$row['onderwerp']."</td></tr>";

echo "<tr><td>id</td><td>".$row['bericht']."</td></tr>";

}

echo "</table>";

?>

</body>

</html>

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...