link in tabel mysql_fetch_array
Ik ben nieuw hier en nieuw met PHP. Sinds kort ben ik met een nieuw project begonnen en wil een site maken met cursussen en lessen en wil deze in een tabel weergeven waarna men op de naam kan klikken en dan de overige gegevens worden weergegeven. ik wou dit doen door een variabele naam aan te maken en dan in de url een id mee te geven zodat daarna makkelijk is om uit mijn mysql database de gegevens te selecteren en deze dan weergeven op een andere pagina. Zonder link had ik de pagina werkend maar met link krijg ik een error namelijk: Parse error: syntax error, unexpected '<' on line 28 dat is hier de regel waar $naam begint.
weet iemand wat het probleem kan zijn?
Alvast bedankt voor jullie hulp ik heb zowiezo al enorm veel aan jullie site gehad.
Jeffrey
<table border="0" width="500">
<tr>
<td colspan="4"><h2 align="left">lessen</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij lesse";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$provincie = $row['provincie'];
$naam = '<a href="../gegevensles.php?id=$row[id]">$row['naamles']</a>';
echo ("<tr><td>". $naam. " </td> " .
"<td>" . $provincie . " </td> " .
"<td>" . $row['uren'] . " </td> " .
"<td>" . $row['niveau'] . " </td></tr>\n ");
}
?>
<!-- Einde van de lus, tabel afsluiten -->
</table>
Echo gebruik je trouwens zo echo "";
Gewijzigd op 16/08/2010 20:21:36 door - Raoul -
echo is een language construct. Je mag dus met of zonder haakjes (()) werken.
Raoul, 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
<table border="0" width="500">
<tr>
<td colspan="4"><h2 align="left">les</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij lesse";
<tr>
<td colspan="4"><h2 align="left">les</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij lesse";
Gewijzigd op 16/08/2010 20:56:37 door Niels K
Niels Kieviet op 16/08/2010 20:56:24:
Dat je PHP niet hebt gestart.. Wat Raoul al vertelde..
Dat kan dus niet hé, want het is een php error die die knakker krijgt.
Eerder zoiets dat hij php al op regel één start.
Plaats eens meer code tussen [code] en [/code] tags.
Waarschijnlijk heb je ook nog een include.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<table border="0" width="500">
<tr>
<td colspan="4"><h2 align="left">lessen</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij lesse";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$provincie = $row['provincie'];
$naam = '<a href="../gegevensles.php?id=$row[id]">$row['naamles']</a>';
echo ("<tr><td>". $naam. " </td> " .
"<td>" . $provincie . " </td> " .
"<td>" . $row['uren'] . " </td> " .
"<td>" . $row['niveau'] . " </td></tr>\n ");
}
?>
<tr>
<td colspan="4"><h2 align="left">lessen</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij lesse";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$provincie = $row['provincie'];
$naam = '<a href="../gegevensles.php?id=$row[id]">$row['naamles']</a>';
echo ("<tr><td>". $naam. " </td> " .
"<td>" . $provincie . " </td> " .
"<td>" . $row['uren'] . " </td> " .
"<td>" . $row['niveau'] . " </td></tr>\n ");
}
?>
<!-- Einde van de lus, tabel afsluiten -->
</table>
Toevoeging op 16/08/2010 21:05:16:
op een of andere manier kopieert hij dus niet mijn php tag uit dreamweaver :S
Ok, wist ik niet..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php require_once("includes/connection2.php"); ?>
<?php include("includes/header.php"); ?>
<html>
<head>
</head>
<body>
<table border="0" width="500">
<tr>
<td colspan="4"><h2 align="left">lessen</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij naar het scherm -->
<?php
$query = "SELECT * FROM les";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$naam = '<a href="../gegevensles.php?id=$row[id]">$row['naamles']</a>';
echo ("<tr><td>". $naam. " </td> " .
"<td>" . $row['provincie'] . " </td> " .
"<td>" . $row['uren'] . " </td> " .
"<td>" . $row['niveau'] . </td></tr>\n ");
}
?>
<!-- Einde van de lus, tabel afsluiten -->
</table>
</body>
</html>
<?php include("includes/header.php"); ?>
<html>
<head>
</head>
<body>
<table border="0" width="500">
<tr>
<td colspan="4"><h2 align="left">lessen</h2></td>
</tr>
<tr>
<th><div align="left">les</div></th>
<th><div align="left">provincie</div></th>
<th><div align="left">uren</div></th>
<th><div align="left">niveau</div></th>
</tr>
<!-- Vanaf hier de PHP while()-lus. Elke lusdoorgang schrijft
een tabelrij naar het scherm -->
<?php
$query = "SELECT * FROM les";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$naam = '<a href="../gegevensles.php?id=$row[id]">$row['naamles']</a>';
echo ("<tr><td>". $naam. " </td> " .
"<td>" . $row['provincie'] . " </td> " .
"<td>" . $row['uren'] . " </td> " .
"<td>" . $row['niveau'] . </td></tr>\n ");
}
?>
<!-- Einde van de lus, tabel afsluiten -->
</table>
</body>
</html>
Verder:
- Start je onnodig veel PHP
- Maak je gebruik van de OR DIE kerkhof methode.
- Heb je last van XSS injection.
Gewijzigd op 16/08/2010 21:10:39 door Niels K
ja maar wat doe ik fout op regel 30 :$ sorry nog echt een beginner en ik wil als dit allemaal werkt inderdaad or die toevoegen en start de php telkens om het voor mezelf overzichtelijk te houden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// Alle lessen selecteren
$query =
"
SELECT
veldnaam1,
veldnaam2,
veldnaam3
FROM
les
";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while( $row = mysql_fetch_assoc( $result ) )
{
echo
'
<td> <a href="../gegevensles.php?id=' .( int ) $row['id']. '">' .htmlspecialchars( $row['naamles'] ). '</a> </td>
<td> ' .htmlspecialchars( $row['provincie'] ). '</td>
<td> ' .htmlspecialchars( $row['uren'] ). '</td>
<td> ' .htmlspecialchars( $row['niveau'] ). '</td>
';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// Alle lessen selecteren
$query =
"
SELECT
veldnaam1,
veldnaam2,
veldnaam3
FROM
les
";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while( $row = mysql_fetch_assoc( $result ) )
{
echo
'
<td> <a href="../gegevensles.php?id=' .( int ) $row['id']. '">' .htmlspecialchars( $row['naamles'] ). '</a> </td>
<td> ' .htmlspecialchars( $row['provincie'] ). '</td>
<td> ' .htmlspecialchars( $row['uren'] ). '</td>
<td> ' .htmlspecialchars( $row['niveau'] ). '</td>
';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
Gewijzigd op 16/08/2010 21:20:11 door Niels K
Ik kan natuurlijk niet ontkennen dat dit er veel beter uit ziet en het ook werkt zonder foutmeldingen! Dus bedankt voor je tijd! dankje voor je tip ik zal er op letten!
Geen probleem.. Probeer voortaan je code zo te schrijven:)
ja zal ik doen! probeer het te leren uit verschillende boeken en site's waardoor ik nog niet echt een eigen duidelijke werkwijze heb wie voor mij goed werkt
Heb ondertussen de nodige boeken gebruikt, maar valt me op dat veel boeken niet/nauwelijks rekening houden met het controleren van invoer/beveiligen van pagina's.
Probeer eens dit
"Heb ondertussen de nodige boeken gebruikt, maar valt me op dat veel boeken niet/nauwelijks rekening houden met het controleren van invoer/beveiligen van pagina's."
Daarom ben ik geen voorstander van boeken. Het wordt zo vaak verkeerd uitgelegd..