Specifieke pagina na klik op nieuwsitem
Ik ben bezig met het maken van een nieuwsscriptje. Tot hiertoe kan in al een titel, datum, bericht en foto toevoegen aan de databank. Ik heb ook al een pagina waar al deze berichten op komen te staan (een soort archief), maar als ik op een bepaald nieuwsbericht klik (bv op de titel/foto) moet er een nieuwe pagina komen waar nog wat meer informatie op komt te staan. Hoe moet ik deze link maken?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include"includes/connection.php";
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum ASC";
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo $row['titel']." - <i><small>".$row['datum']."</small></i><br>";
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
include"includes/connection.php";
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum ASC";
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo $row['titel']." - <i><small>".$row['datum']."</small></i><br>";
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
Gewijzigd op 01/11/2012 14:05:58 door Jos Vermassen
dan kan je hieronder je database code zetten. In de link van het nieuwsitem haal de de id uit de database. En dan maak je een link met bijvoorbeeld www.test.nl/index.php?pagina=nieus&id=/uit de database halen/
Tim Slootweg op 01/11/2012 13:52:33:
Volgens mij bedoel je
dan kan je hieronder je database code zetten. In de link van het nieuwsitem haal de de id uit de database. En dan maak je een link met bijvoorbeeld www.test.nl/index.php?pagina=nieus&id=/uit de database halen/
dan kan je hieronder je database code zetten. In de link van het nieuwsitem haal de de id uit de database. En dan maak je een link met bijvoorbeeld www.test.nl/index.php?pagina=nieus&id=/uit de database halen/
Ik heb wat opgezocht, zou het iets moeten zijn in deze aard?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include"includes/connection.php";
if(isset($_GET['id']))
{
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum ASC";
}
else
{
}
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo '<a href=?id='.$row['id'].'>'.$row['titel'].'</a>';
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
include"includes/connection.php";
if(isset($_GET['id']))
{
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum ASC";
}
else
{
}
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo '<a href=?id='.$row['id'].'>'.$row['titel'].'</a>';
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
En nu staat het archief altijd onder het nieusitem dus else{} is dan niet nodig. Maar volgens mij moet dit wel werken. Om het nog wat netter te doen zou je nog kunnen doen
dan kijk je ook of er wel een waarde bij het id staat.
Gewijzigd op 01/11/2012 14:44:55 door Tim S
Tim Slootweg op 01/11/2012 14:44:23:
Ja Alleen where id=id moet dan volgens mij zijn where id=$id
En nu staat het archief altijd onder het nieusitem dus else{} is dan niet nodig. Maar volgens mij moet dit wel werken. Om het nog wat netter te doen zou je nog kunnen doen
dan kijk je ook of er wel een waarde bij het id staat.
En nu staat het archief altijd onder het nieusitem dus else{} is dan niet nodig. Maar volgens mij moet dit wel werken. Om het nog wat netter te doen zou je nog kunnen doen
dan kijk je ook of er wel een waarde bij het id staat.
Krijg een lege pagina, mijn id is leeg.
En je stuurt je id mee in je url? dus pagina.php?id=1 of net op welke link de mensen klikken?
Chris NVT op 01/11/2012 14:59:02:
En je stuurt je id mee in je url? dus pagina.php?id=1 of net op welke link de mensen klikken?
als ik dus op de link klik, deze:
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
dan komt er dit in mn urlbalk:
http://www.yannickluijten.be/luc/show.php?id=
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
echo $row['id'];
Toevoeging op 01/11/2012 15:05:45:
Tevens kun je beter je quotes omdraaien, enkel voor je echo's en dubbel voor HTML
Zo dus
echo '<a href="show.php?id='.$row['id'].'">'.$row['titel'].'</a>';
echo $row['id'];
Gewijzigd op 01/11/2012 15:07:05 door Chris PHP
Chris NVT op 01/11/2012 15:04:43:
Dus wordt er geen id meegegeven, aangezien hij leeg is. Echo $row['id'] eens op je pagina waar de link staat. Is hij dan wel gevult? Zoiets dus.
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
echo $row['id'];
Toevoeging op 01/11/2012 15:05:45:
Tevens kun je beter je quotes omdraaien, enkel voor je echo's en dubbel voor HTML
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
echo $row['id'];
Toevoeging op 01/11/2012 15:05:45:
Tevens kun je beter je quotes omdraaien, enkel voor je echo's en dubbel voor HTML
Nee, hij geeft niet terug. Hoe komt dit?
SELECT datum, titel, bericht, photo FROM
Dat moet dan zijn
SELECT id, datum, titel, bericht, photo FROM
Dit werkt zo overigens ook niet lijkt me.
if(isset($_GET['id']))
{
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum ASC";
}
Waar komt die $_GET[id'] vandaan? Heb je op die pagina ook een query gedraaid waar je de id's opvraagt?
Nu vraag je een id op voordat je de query hebt gedraaid, en als je op de vorige pagina geen query draaid, komt hij natuurlijk nooit aan een id.
Gewijzigd op 01/11/2012 15:10:46 door Chris PHP
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
include"includes/connection.php";
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id, datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum DESC";
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
//echo $row['titel']." - <i><small>".$row['datum']."</small></i><br>";
echo "<br>";
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
include"includes/connection.php";
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id, datum, titel, bericht, photo FROM image WHERE id=id AND status='0' ORDER BY datum DESC";
$sql = mysql_query($query);
while($row = mysql_fetch_array($sql))
{
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
//echo $row['titel']." - <i><small>".$row['datum']."</small></i><br>";
echo "<br>";
echo $row['bericht'];
echo "<br>";
echo "<img src='image/".$row['photo']."' width='360' height='150'>";
echo "<br><hr><br>";
}
?>
Nu heb ik enkel nog een probleempje met mn show.php. De pagina is leeg.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0'";
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
echo"<h3>".$row['titel']."</h3>";
echo"<p>".$row['bericht']."</p>";
echo"<p>".$row['datum']."</p>";
echo"<p>".$row['photo']."</p>";
?>
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT datum, titel, bericht, photo FROM image WHERE id=id AND status='0'";
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
echo"<h3>".$row['titel']."</h3>";
echo"<p>".$row['bericht']."</p>";
echo"<p>".$row['datum']."</p>";
echo"<p>".$row['photo']."</p>";
?>
Komt je id nu wel mee dan? Echo de $_GET['id'] eens op je show.php en lijk eens of hij leeg is.
Chris NVT op 01/11/2012 15:17:54:
Komt je id nu wel mee dan? Echo de $_GET['id'] eens op je show.php en lijk eens of hij leeg is.
De id is nu niet meer leeg nee. Id in show.php is leeg.
Draai nu je quotes eens om, dus voor echo's enkel ' en voor HMTL dubbel " op je eerste pagina.
Toevoeging op 01/11/2012 15:27:15:
En het moet zijn WHERE id $id
Tim Slootweg op 01/11/2012 15:26:17:
Je query op show.php mist nog de id bij SELECT
Toevoeging op 01/11/2012 15:27:15:
En het moet zijn WHERE id $id
Toevoeging op 01/11/2012 15:27:15:
En het moet zijn WHERE id $id
Ja dat had ik al aangepast, maar geen verschil.
Ik heb de quotes omgewisseld maar dat geeft ook geen verschil
hier de code voor de berichten die worden weergegeven door op de link de drukken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query= mysql_query("SELECT * FROM gastenboek WHERE id=$id");
while($data = mysql_fetch_assoc($query)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<div id="berichten">
<div class="naamg"><b8>Geplaatst door</b8> '.htmlspecialchars(stripslashes($data['naam'])).'<b8> op </b8> '.htmlspecialchars(stripslashes($data['datum'])).'</div>
<div class="berichtg"><br />' .nl2br(stripslashes($data['bericht'])).'</div></div>';
}
//ik heb hier zelf nog else{}, hier laat ik alle berichten zien
?>
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query= mysql_query("SELECT * FROM gastenboek WHERE id=$id");
while($data = mysql_fetch_assoc($query)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<div id="berichten">
<div class="naamg"><b8>Geplaatst door</b8> '.htmlspecialchars(stripslashes($data['naam'])).'<b8> op </b8> '.htmlspecialchars(stripslashes($data['datum'])).'</div>
<div class="berichtg"><br />' .nl2br(stripslashes($data['bericht'])).'</div></div>';
}
//ik heb hier zelf nog else{}, hier laat ik alle berichten zien
?>
//hier de code voor het maken van de link
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$query= mysql_query("SELECT * FROM gastenboek ORDER BY id");
<div class="bericht"><a href="index.php?pagina=gastenboek&id='.$data['id'].'"><b></b>'.stripslashes(substr(strip_tags($data["bericht"]),0,31)).'...</a></div>
?>
$query= mysql_query("SELECT * FROM gastenboek ORDER BY id");
<div class="bericht"><a href="index.php?pagina=gastenboek&id='.$data['id'].'"><b></b>'.stripslashes(substr(strip_tags($data["bericht"]),0,31)).'...</a></div>
?>
Je moet nog wel een while lus maken bij de link
Gewijzigd op 01/11/2012 16:12:54 door Tim S
Tim Slootweg op 01/11/2012 16:06:01:
Ik heb even een voorbeeldje van een gastenboek van mezelf, ik heb de overbodige dingen weggelaten, dit werkt bij mij.
hier de code voor de berichten die worden weergegeven door op de link de drukken:
//hier de code voor het maken van de link
Je moet nog wel een while lus maken bij de link
hier de code voor de berichten die worden weergegeven door op de link de drukken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query= mysql_query("SELECT * FROM gastenboek WHERE id=$id");
while($data = mysql_fetch_assoc($query)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<div id="berichten">
<div class="naamg"><b8>Geplaatst door</b8> '.htmlspecialchars(stripslashes($data['naam'])).'<b8> op </b8> '.htmlspecialchars(stripslashes($data['datum'])).'</div>
<div class="berichtg"><br />' .nl2br(stripslashes($data['bericht'])).'</div></div>';
}
//ik heb hier zelf nog else{}, hier laat ik alle berichten zien
?>
if(isset($_GET['id']))
{
$id=$_GET['id'];
$query= mysql_query("SELECT * FROM gastenboek WHERE id=$id");
while($data = mysql_fetch_assoc($query)) {
// Als er wel reacties zijn geplaatst worden deze nu weergegeven
echo '<div id="berichten">
<div class="naamg"><b8>Geplaatst door</b8> '.htmlspecialchars(stripslashes($data['naam'])).'<b8> op </b8> '.htmlspecialchars(stripslashes($data['datum'])).'</div>
<div class="berichtg"><br />' .nl2br(stripslashes($data['bericht'])).'</div></div>';
}
//ik heb hier zelf nog else{}, hier laat ik alle berichten zien
?>
//hier de code voor het maken van de link
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$query= mysql_query("SELECT * FROM gastenboek ORDER BY id");
<div class="bericht"><a href="index.php?pagina=gastenboek&id='.$data['id'].'"><b></b>'.stripslashes(substr(strip_tags($data["bericht"]),0,31)).'...</a></div>
?>
$query= mysql_query("SELECT * FROM gastenboek ORDER BY id");
<div class="bericht"><a href="index.php?pagina=gastenboek&id='.$data['id'].'"><b></b>'.stripslashes(substr(strip_tags($data["bericht"]),0,31)).'...</a></div>
?>
Je moet nog wel een while lus maken bij de link
Ik heb een aantal dingen geprobeerd, maar ik kom er niet uit. Wanneer ik op een link klik kom ik nog steeds uit op een lege pagina. Het id komt wel in de urlbalk te staan.
$_GET wel moet hoofdletters, deze fout had ik laatst
Tim Slootweg op 01/11/2012 16:38:45:
$_GET wel moet hoofdletters, deze fout had ik laatst
Heb ik toch overal met hoofdletters gedaan? Dit is mijn show.php nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id, datum, titel, bericht, photo FROM image WHERE id=id";
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
echo"<h3>".$row['titel']."</h3>";
echo"<p>".$row['bericht']."</p>";
echo"<p>".$row['datum']."</p>";
echo"<p>".$row['photo']."</p>";
?>
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id, datum, titel, bericht, photo FROM image WHERE id=id";
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
echo"<h3>".$row['titel']."</h3>";
echo"<p>".$row['bericht']."</p>";
echo"<p>".$row['datum']."</p>";
echo"<p>".$row['photo']."</p>";
?>
en dit is mijn link:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while($row = mysql_fetch_array($sql))
{
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
}
?>
while($row = mysql_fetch_array($sql))
{
echo"<a href='show.php?id=".$row['id']."'>".$row['titel']."</a>";
}
?>
ik vraag me af waarom je $sql en $query niet samen doet