Hoi,

ik ben nieuw met PHP. nu ben ik bezig een facturatie systeem/klantbestand aan het bouwen.

Ik vraag me nu af of ik wel op de juiste manier werk.
De code die ik nu heb, is gekoppeld aan de database en haalt het klantbestand op. Vervolgens geeft hij dit in een tabel weer.
het is straks de bedoeling dat de layout aangepast kan worden. Dit is me echter nog niet helemaal gelukt.

Hier de code.

<?php
require ("connect.php");

$DB = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD);
mysql_select_db($DB_BASE, $DB);
Echo "<a href=Main.php>Home</a>";
Echo "<br><br>";
echo "<LINK HREF=\"stylesheet.css\" REL=\"stylesheet\" TYPE=\"text/css\">";


$result = mysql_query("SELECT * FROM klant_bestand ORDER BY id")
or die(mysql_error());

echo "<table border='1'>";
echo
'<tr>
<td id="klant">Klantnummer</td>
<td id="klant">Bedrijfsnaam</td>
<td>Voornaam</td>
<td>Achternaam</td>
<td>Contactpersoon</td>
<td>straatnaam</td>
<td>Huisnummer</td>
<td>Toevoeging</td>
<td>Postcode</td>
<td>Woonplaats</td>
<td>Land</td>
</tr>';

while($row = mysql_fetch_array( $result )) {

echo "<tr><td>";
echo $row ['ID'];
echo "</td><td>";
echo $row ['Bedrijfsnaam'];
echo "</td><td>";
echo $row ['Voornaam'];
echo "</td><td>";
echo $row ['Achternaam'];
echo "</td><td>";
echo $row ['Contactpersoon'];
echo "</td><td>";
echo $row ['Straatnaam'];
echo "</td><td>";
echo $row ['Huisnummer'];
echo "</td><td>";
echo $row ['Toevoeging'];
echo "</td><td>";
echo $row ['Postcode'];
echo "</td><td>";
echo $row ['Woonplaats'];
echo "</td><td>";
echo $row ['Land'];

echo "</td></tr>";
}
echo "</table>";

?>
alvast bedankt voor jullie reactie.

Groet, Vincent
- Gebruik geen or die() als foutafhandeling van de query.
- Gebruik geen wildcard (*) in je sql
- gebruik mysql_fetch_assoc() idpv _fetch_array
- Voor PHP best single quotes (') en voor html double quotes (")
Thanks voor jullie reactie.

Wat word met de Wildcard bedoeld. Kan ik die er uithalen? of moet die vervangen worden door wat anders.
Wildcard is het sterretje, idpv van het sterretje zet je dus gewoon de velden.

SELECT veld1, Veld2, Veld3 FROM ...
wildcard is dit:

$result = mysql_query("SELECT * FROM klant_bestand ORDER BY id");

Waarom gebruik je het niet:
Je haalt overbodige rijen op .
En het is moeilijker om te bepalen welke rijen je wilt gaan gebruiken omdat je ze dan of moet onthouden of moet gaan zoeken in de database.
als ik dit straks wil uitlijnen, klopt het dat ik daar dan CSS voor gebruik. Net als met HTML?

Hoe kan ik dan het beste te werk te gaan?
Voorbeeld:

<td id="klant">Klantnummer</td>
echo '<tr><td id ="klant>';
echo $row ['ID'];
echo '</td><td id="klant">';

vervolgens dan in CSS td#klant uitlijnen?
Uitbreiding op wat Jordi zegt, er zijn 2 redenen voor het niet gebruiken van een wildcard.

Rede 1:
De snelheid, zoals jordi hierboven als zegt worden nu alle rijen opgehaald, dit gaat ten koste van de snelheid.

Rede 2:
SQL staat voor Structured Query Language. Wat wil dit zeggen? Wel je moet alles typen wat er moet gebeuren, stel nu dat je een wildcard gebruikt dan weet je 2 maanden later niet meer wat je query juist ophaalt, nu weet je dat wel.

Inderdaad, PHP dient om te communiceren met se server en HTML verzorgd samen met css de opmaak. Het opmaken van een pagina is dus net hetzelfde met of zonder PHP.
Ik heb de Wildcard eruit gehaald en nu met ID en Bedrijfsnaam ingevuld. Echter werkt het niet.
Code:
$result = mysql_query("SELECT ID, Bedrijfsnaam, FROM klant_bestand ORDER BY id")
or die(mysql_error());
geeft;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM klant_bestand ORDER BY id' at line 1
De komma achter Bedrijfsnaam moet weg:

SELECT id, bedrijfsnaam FROM klant_bestand ORDER BY id


Let ook op je hoofdletter gebruik.
Bij de SELECT gebruik je ID met hoofdletters en bij de ORDER BY gebruik je id met kleine letters. Dit kan verwarrend zijn voor je zelf met complexe queries.

en nog steeds de dingen die Jasper al zei:
- Gebruik geen or die() als foutafhandeling van de query.
- gebruik mysql_fetch_assoc() idpv _fetch_array
- Voor PHP best single quotes (') en voor html double quotes (")
Super werkt.

Weer een stap dichterbij.

andere punten gelijk aangepast in ieder script.

Groet, vincent

Reageren