PHP query fout

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ahmed Hasan

Ahmed Hasan

08/10/2012 14:46:45
Quote Anchor link
Ik ben de volgende error tegengekomen:

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

<body>
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

$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!
 
PHP hulp

PHP hulp

24/11/2024 09:14:07
 
Sander Z

Sander Z

08/10/2012 14:48:17
Quote Anchor link
Mis je op regel 4 aan het einde geen ;
 
Ahmed Hasan

Ahmed Hasan

08/10/2012 14:50:23
Quote Anchor link
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.
 
Write Down

Write Down

08/10/2012 14:51:01
Quote Anchor link
Nee, hij mist geen ;. (semicolon in het Engels?) Hij mist wel een quote. "SELECT * FROM winkel"

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo 'Hallo';
echo('Hallo');
?>
 
Chris PHP

Chris PHP

08/10/2012 14:52:10
Quote Anchor link
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
 
Ahmed Hasan

Ahmed Hasan

08/10/2012 15:22:43
Quote Anchor link
Ik heb alles in de syllabus die ik van de docent heb ontvangen genegeerd en ben eens op internet gaan zoeken. Dit is mijn code nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
mysql_connect("localhost","root","");
mysql_select_db("firstchoice3")
?>

<body>
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
<?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>";
}

?>

</body>

Het werkt! Nu weet ik dat ik voortaan de syllabus maar moet negeren, wel zorgelijk dat het vol staat met fouten.
 
Frank WD

Frank WD

08/10/2012 16:44:55
Quote Anchor link
Nog een paar puntjes.

- 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)
 
Reshad F

Reshad F

08/10/2012 17:20:21
Quote Anchor link
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.
 
Obelix Idefix

Obelix Idefix

08/10/2012 18:28:57
Quote Anchor link
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.
 
Ahmed Hasan

Ahmed Hasan

10/10/2012 17:27:21
Quote Anchor link
Bedankt voor alle tips! @FRANK WD, de link naar de tutorial die jij hebt gestuurd is heel handig!
 



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.