18. Vis indhold fra database

Du er her: StartIndholdsfortegnelse → Vis indhold fra database
Indhold

Indledning

Du skal nu til at vise de data (eksempel-data) som du puttede ind i tabellen i sidste kapitel. Når man skal vise data fra en database-tabel er der følgende trin, der skal gennemgås:

  1. Opret forbindelse til MySQL
  2. Vælg den database vi skal hente data fra
  3. Oprette et udtræk (oprette en forespørgsel)
  4. Vis data på hjemmesiden
  5. (Evt.: Formater data, så de står lidt pænere og mere overskueligt)

PHP har nogle indbyggede funktioner til at kommunikere med MySQL. Vi skal bruge følgende 4:

Opret forbindelse til MySQL

Nok snak, nu skal vi oprette forbindelse til databasen, men først lidt forberedelse:

  1. Opret en ny mappe og kald den mysql
  2. Opret en ny hjemmeside efter Standard-skabelonen.
  3. Gem siden som index.php i mappen mysql
    Så er vi klar til selve oprettelsen.
  4. Lav nogle ekstra tomme linier i toppen af hjemmesiden (før alle HTML-koderne).
    Til at forbinde til MySQL skal vi bruge PHP-funktionen mysql_connect
  5. Skriv følgende foroven på din side:
    <?
    mysql_connect("solen.her", "solen", "abcd");
    ?>
    
    Nu burde du have oprettet en forbindelse til serveren.

Vælg den database vi skal hente data fra

Du skal nu vælge den database du skal arbejde med. Vi får kun lov til at arbejde med én hver her på skolen:

  1. Vi skal bruge PHP-funktionen mysql_select_db. Tilføj endnu en linie til det du skrev ovenfor, så det kommer til at se således ud:
    <?
    mysql_connect("solen.her", "solen", "abcd");
    mysql_select_db("solen");
    ?>
    
    Du har nu valgt den database, som PHP skal trække data fra.

Udtræk data (opret forespørgsel)

Du skal nu til at trække data ud fra din database. Her skal du bruge funktionen mysql_query.

  1. Tilføj en tredje linie til dine koder, så det bliver som herunder:
    <?
    mysql_connect("solen.her", "solen", "abcd");
    mysql_select_db("solen");
    $resultat = mysql_query("SELECT * FROM indlaeg");
    ?>
    
    Du har nu samtidig fået gemt resultatet af din forespørgsel i variablen $resultat. Variablen $resultat er et array (en liste), der indeholder det antal rækker, der er i din database-tabel.

Vis data

Nu mangler vi så bare at få det vist på skærmen. Da vi har fået gemt søge-resultatet i et array ($resultat) er vi nødt til at bruge en løkke, der kan gentages lige så længe, der stadig er data at hente fra vores array ($resultat). Man henter en række af gangen med funktionen mysql_fetch_row. I første omgang skal du kun se udtrækket uden at formattere det, så det ser mere læseligt ud:

  1. Flyt markøren ned efter koden <body>
  2. Skriv derefter følgende:
    <?
    while ($raekke = mysql_fetch_row($resultat)) 
    {
       echo "<p>Navn: ".$raekke[1]."<br>";
       echo "Email: ".$raekke[2]."<br>";
       echo "Besked: ".$raekke[3]."<br></p>";
    }
    ?>
    
  3. Gem siden og upload den til serveren. Afprøv den derefter i browseren.

Formater data-visningen

For at få det til at se lidt mere overskueligt ud skal du nu putte dataene ind i en tabel:

  1. Ret i koden til eksemplet ovenfor, så det kommer til at se således ud:
    <table>
    <tr>
    <td><b>Indlæg:</b></td>
    <td><b>Indsendt af:</b></td>
    </tr>
    <?
    while ($raekke = mysql_fetch_row($resultat)) 
    {
     echo "<tr><td>";
     echo $raekke[3];
     echo "</td><td>";
     echo "<a href=\"mailto:$raekke[2]\">$raekke[1]</a>";
     echo "</td></tr>";
    }
    ?>
    </table>
    
  2. Gem siden igen og upload til serveren.
  3. Til sidst kan du jo sætte en overskrift på og oprette et stylesheet, så det ser godt ud.
  4. Send derefter opgaven til din lærer.