PHP query fout
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\Opdracht 50\Firstchoice.php on line 15
Dit is de code:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
mysql_connect("localhost","root","");
or die("Verbinding kan niet worden gemaakt.");
mysql_select_db("firstchoice3")
or die("Database niet gevonden.");
?>
mysql_connect("localhost","root","");
or die("Verbinding kan niet worden gemaakt.");
mysql_select_db("firstchoice3")
or die("Database niet gevonden.");
?>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$resultaat = mysql_query("SELECT * FROM winkel);
while($rij = mysql_fetch_assoc($res)) {
echo($rij['Wcode']);
echo($rij['Naam']);
echo($rij['Adres']);
echo($rij['Plaats']);
echo($rij['Telefoonnr'] . "<br />");
}
</body>
?>
$resultaat = mysql_query("SELECT * FROM winkel);
while($rij = mysql_fetch_assoc($res)) {
echo($rij['Wcode']);
echo($rij['Naam']);
echo($rij['Adres']);
echo($rij['Plaats']);
echo($rij['Telefoonnr'] . "<br />");
}
</body>
?>
De bedoeling is dat ik alle gegevens uit de tabel 'winkel' uit de database 'firstchoice3' op het scherm krijg te zien. Ik kon echt niet vinden wat ik fout had gedaan, en het voorbeeld dat ik heb gekregen voor deze opdracht (ik ben pas een paar weken geleden begonnen aan de opleiding Informatica) zag er precies zo uit. Ik zou het zeer op prijs stellen als iemand mij kan vertellen wat ik fout doe.
Alvast bedankt!
Mis je op regel 4 aan het einde geen ;
Laat maar, ik heb het al opgelost, ik ben een " vergeten achter de winkel in de query. Ik zat aldoor in line 15 te kijken omdat de error mij daar naar verwees. Ik heb daarna de </body> uit de php gehaald en heb nu te maken met undefined variables. Maar dat probeer ik zelf wel op te lossen. Toch bedankt.
Verder even opmerken dat er geen foutafhandeling in het script zit. Dat echo het niet vereist om ronde haakjes te gebruiken. Dat laatste is wat minder typwerk, en volgens mij ook wat overzichtelijker.
Neem bijvoorbeeld:
Sander Z op 08/10/2012 14:48:17:
Mis je op regel 4 aan het einde geen ;
Nee, die staat er, echter heeft hij zijn string niet afgesloten met een ", dus is alles een string :D
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$sql="SELECT * FROM winkel";
$result=mysql_query($sql);
if (! $result) {
die("Database error: " . mysql_error());
}
while($rij = mysql_fetch_assoc($result)) {
echo"<table>";
echo"<tr>";
echo"<td>" . ($rij['Wcode']) . "</td>";
echo"<td>" . ($rij['Naam']) . "</td>";
echo"<td>" . ($rij['Adres']) . "</td>";
echo"<td>" . ($rij['Plaats']) . "</td>";
echo"<td>" . ($rij['Telefoonnr'] . "</td>");
echo"</table>";
}
?>
$sql="SELECT * FROM winkel";
$result=mysql_query($sql);
if (! $result) {
die("Database error: " . mysql_error());
}
while($rij = mysql_fetch_assoc($result)) {
echo"<table>";
echo"<tr>";
echo"<td>" . ($rij['Wcode']) . "</td>";
echo"<td>" . ($rij['Naam']) . "</td>";
echo"<td>" . ($rij['Adres']) . "</td>";
echo"<td>" . ($rij['Plaats']) . "</td>";
echo"<td>" . ($rij['Telefoonnr'] . "</td>");
echo"</table>";
}
?>
</body>
Het werkt! Nu weet ik dat ik voortaan de syllabus maar moet negeren, wel zorgelijk dat het vol staat met fouten.
- Gebruik altijd een goede fout afhandeling voor je Qeury's Klik
- Gebruik geen * in je Qeury maar schijf altijd de velden die je nodig hebt vol uit. Zo blijft je query snelle omdat je dan geen velden ophaalt die overbodig zijn.
- In je while loop gaat ook dingen verkeert. Zo heb je <table> in je while staan. Deze kan en mag er gewoon buiten komen.
- Elke regel in je while open je met echo en sluit je ook gelijk weer. Je kan/mag hier gewoon je echo openen op eerste regel en de laatste regel sluiten. (In je While-loop)
aanvulling op Frank, je MOET je <table> buiten de while zetten omdat je nu meerdere tables krijgt ipv 1 met een aantal rijen erin. Nog beter is om dit niet in een table te zetten omdat een table hier niet geschikt voor is.
Reshad F op 08/10/2012 17:20:21:
Nog beter is om dit niet in een table te zetten omdat een table hier niet geschikt voor is.
Waarom zou een tabel hier niet geschikt voor zijn? Voor het tonen van data is een tabel een prima methode.
Bedankt voor alle tips! @FRANK WD, de link naar de tutorial die jij hebt gestuurd is heel handig!