Blog - nieuwe pagina aanmaken bij posten bericht
Ik ben een website aan het maken om een blog op te zetten,
het posten en het ophalen van berichten met PHP via een database gaat me nu makkelijk af, alleen heb ik nog steeds vragen.
Wat wil ik?
Ik wil als ik een bericht post in de database dat ten eerste de titel, de schrijver, aantal reacties e.d. op de index pagina komen te staan.
(dat kan ik nog wel)
Maar ik wil dat als ik op de titel klik, dat ik dan op een pagina kom waar dat bericht (blog) dan geopend staat met alle reacties (+mogelijkheid om zelf een reactie te plaatsen)
Simpel gezegd: als ik een blog post in de database, dan moet er op een of andere manier een pagina worden aangemaakt, speciaal voor dat bericht, en de link daar naar toe moet automatisch bij de indexpagina komen te staan.
Ik ben op zoek gegaan met Google naar een geschikte manier, alleen kan ik niet iets vinden dat hier bij past.
Zou iemand mij kunnen helpen met waar ik informatie vandaan zou moeten halen en/of hier een uitleg willen geven over hoe ik dit zou moeten aanpakken?
Alvast bedankt!
Stef van de Ven
p.s. Een heel fijn 2010 toegewenst vanuit Eindhoven!
http://phptuts.nl/view/41/7/
Zoiets bv:
Gr
Loran
Je kan een pagina maken en daar de artikelen per ID uit de database halen > Zoiets bv:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
require_once 'db_config.php';
$sql = "SELECT * FROM artikelen WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Sorry, dit artikel is niet gevonden.';
}
else
{
// hier je output als het artikel bestaat.
echo $row['titel'];
}
?>
require_once 'db_config.php';
$sql = "SELECT * FROM artikelen WHERE id = '".mysql_real_escape_string($_GET['id'])."'";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0)
{
echo 'Sorry, dit artikel is niet gevonden.';
}
else
{
// hier je output als het artikel bestaat.
echo $row['titel'];
}
?>
Gr
Loran
Ik heb ook het het artikel van jou link gelezen en dat is eigenlijk wel heel handig. Als ik het goed heb moet je het ID van het artikel gebruiken om op de universele pagina het artikel te kunnen zetten.
Alleen vraag ik me af hoe ik het voor mekaar moet krijgen om de universele pagina te laten weten welk bericht ik heb gekozen op de indexpagina.
Groetjes,
Stef
blog.php?id=3
Je kunt dan vervolgens in blog.php zo opvragen wat het id is:
Door intval te gebruiken weet je zeker dat er een getal in je variabele terecht komt. Je kunt je GET-variabele (zo heten die dingen) natuurlijk ook een andere naam geven of er meerdere van gebruiken. Dat wordt dan bijvoorbeeld zoiets:
blog.php?id=3&tekst=hoi
blog.php
(Pagina met alle blogs)
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = mysql_query("SELECT * FROM blogs ORDER BY datum ASC");
while($rec = mysql_fetch_array($sql))
{
echo '<a href="reactie.php?id='.$rec['id'].'">'.$rec['titel'].'</a>';
}
?>
$sql = mysql_query("SELECT * FROM blogs ORDER BY datum ASC");
while($rec = mysql_fetch_array($sql))
{
echo '<a href="reactie.php?id='.$rec['id'].'">'.$rec['titel'].'</a>';
}
?>
en
reacties.php
(pagina met de reacties en de openings post)
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
/*
---- De openings blog
*/
$sql1 = mysql_query("SELECT * FROM blogs WHERE id = '".intval($_GET['id'])."'");
$rec1 = mysql_fetch_array($sql1);
// alles van het item tonen
/*
---- Zijn reacties
*/
$sql2 = mysql_query("SELECT * FROM reacties WHERE blog_id = '".intval($_GET['id'])."' ORDER BY datum ASC");
while($rec2 = mysql_fetch_array($sql2))
{
// alles van het item tonen
}
?>
/*
---- De openings blog
*/
$sql1 = mysql_query("SELECT * FROM blogs WHERE id = '".intval($_GET['id'])."'");
$rec1 = mysql_fetch_array($sql1);
// alles van het item tonen
/*
---- Zijn reacties
*/
$sql2 = mysql_query("SELECT * FROM reacties WHERE blog_id = '".intval($_GET['id'])."' ORDER BY datum ASC");
while($rec2 = mysql_fetch_array($sql2))
{
// alles van het item tonen
}
?>
Dan zou je bijv zo'n database kunnen maken
blogs
- id
- titel
- datum
- bericht
reacties
- id
- blog_id
- datum
- bericht
Dit is maar een simpel voorbeeld hoor...
Natuurlijk niet te vergeten ook nog fout afhandeling inbouwen..
Gewijzigd op 01/01/1970 01:00:00 door Milo