Vervolg links
De site met php en mysql verwerking is http://www.vin-extreme.com/test en nou wil ik dus bij de headlines en read more dat op vervolg pagina het bericht getoond wordt wat je als link op vorige pagina aangeklikt hebt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$sql = "SELECT * FROM joutabelnaam WHERE id = $_GET[id]";
$res = mysql_query($sql);
while ($rij = mysql_fetch_object($res))
{
echo "Het hele bericht";
echo "Bv $rij->titel voor de titel";
// dus gewoon $rij->veldnaam
}
?>
$sql = "SELECT * FROM joutabelnaam WHERE id = $_GET[id]";
$res = mysql_query($sql);
while ($rij = mysql_fetch_object($res))
{
echo "Het hele bericht";
echo "Bv $rij->titel voor de titel";
// dus gewoon $rij->veldnaam
}
?>
Gewijzigd op 21/02/2004 17:55:00 door Mitch X
En moet ik verder iets in mainpage bij link doen?
Die staat nu als article.php?showid=$record->id
Ik denk dat ik dan iets moet doen om bij die link of staat die zo al goed?
Dies wel goed zo hoor...maar dan moet je in het script $_GET[id] in $_GET[showid] veranderen
Ok bedankt. Ga het morgen na werk meteen proberen!
Staat er een tutorial over suberglobals op deze site? Zoja, waar staat deze en zonee, zou iemand zich hierop willen storten voor mij? :o)
Alleen nog ff inlogsysteem voor het bericht toevoegen en het bericht toevoegen pagina over zetten naar deze site maar dat moet wel lukken.
En dan aantal berichten per pagina enzo, maar dat is volgende stap.
$sql = "SELECT * FROM tabelx ORDER BY date DESC and DESC LIMIT 5"; zo ongeveer moest het zijn maar werkt nog niet helemaal.
Tevens wil ik dan onderaan een link naar vervolgpagina waar volgende 5 nieuwsitems staan.
op next.php heb ik dan het volgende wat nog niet helemaal werkt:
$sql = "SELECT * FROM tabelx WHERE id = $_GET[id] ORDER BY date DESC and DESC LIMIT 5";
en bij index heb ik de volgende nog niet werkende link:
"<a href=\"next.php?id=news&start=5\">vorige 5 berichten</a>";
Gewijzigd op 04/03/2004 16:53:00 door Vincent
wat als iemand nou zoiets als dit doet
blaat.php?id=1; DROP TABLE article;
dan ben je opeens je table kwijt
Maar, inderdaad een goed punt.
Heb het dus aangepast, de tabelnaam. Volgens mij moet je dan ook wel inloggegevens enzo hebben maar je weet maar nooit.
Nee, dan heb je de logingegevens niet nodig (het php script logt toch al in ;))
Maar goed, aantal berichten per pagina is dus gelukt, alleen naar volgende reeks (oudere) berichten op volende pagina lukt nog niet.
Quote:
klopt, maar magic quotes staat niet altijd aan.Dat valt nog redelijk mee, als het goed is zorgen magic quotes ervoor dat dit niet gebeurd. (Alle input krijgt automatisch quotes.)
bij mijn server staat het altijd uit tenminste
Quote:
Maar goed, aantal berichten per pagina is dus gelukt, alleen naar volgende reeks (oudere) berichten op volende pagina lukt nog niet.
Afleiden uit je query. Daar geef je een begin getal op en een eindgetal (LIMIT getal1, getal2).
Als je getal1 van getal2 haalt krijg je een waarde, dit is dus de waarde van het aantal berichten per pagina.
Je hyperlink zal dus ergens een variabele moeten hebben die aangeeft wat getal1 is voor de vorige/volgende pagina. En dat is simpel uit te rekenen. Bij de vorige pagina is het getal1 - aantal en bij de volgende pagina is dat getal2 + 1.
En op elke pagina kan je weer makkelijk aan getal2 komen door het aantal per pagina bij getal1 op te tellen.. :D Juist.. wordt niet echt duidelijker hè? :D
script.php
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
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
<?php
/* Ik zit dit maar ff uit de losse pols te typen, dus het is niet getest...
Verder zitten er ook geen controles in voor de meegegeven variabelen. Daarvoor moet je de post van Rick gebruiken.. :D
*/
// Variabelen
$max = $_GET['max'];
$start = $_GET['start'];
// Rekenen
$eind = $start + $max; // Voor de query
$vorige = $start - $max; // Voor de variabele start voor 'vorige'-link
$volgende = $eind + $max; // Voor de variabele start voor 'volgende'-link
// Query
$query = mysql_query("SELECT kolom1, kolom2, kolom3 FROM tabel ORDER BY argument DESC LIMIT $start, $max");
while ($result = mysql_fetch_row($query))
{
// Acties uitvoeren
}
// Hyperlinks maken
echo "<a href=\"script.php?start=$vorige&max=$max\">Vorige</a> | \n";
echo "<a href=\"script.php?start=$volgende&max=$max\">Volgende</a>\n";
?>
/* Ik zit dit maar ff uit de losse pols te typen, dus het is niet getest...
Verder zitten er ook geen controles in voor de meegegeven variabelen. Daarvoor moet je de post van Rick gebruiken.. :D
*/
// Variabelen
$max = $_GET['max'];
$start = $_GET['start'];
// Rekenen
$eind = $start + $max; // Voor de query
$vorige = $start - $max; // Voor de variabele start voor 'vorige'-link
$volgende = $eind + $max; // Voor de variabele start voor 'volgende'-link
// Query
$query = mysql_query("SELECT kolom1, kolom2, kolom3 FROM tabel ORDER BY argument DESC LIMIT $start, $max");
while ($result = mysql_fetch_row($query))
{
// Acties uitvoeren
}
// Hyperlinks maken
echo "<a href=\"script.php?start=$vorige&max=$max\">Vorige</a> | \n";
echo "<a href=\"script.php?start=$volgende&max=$max\">Volgende</a>\n";
?>
Natuurlijk hou ik er in dit script geen rekening mee dat je ook een minimale en een maximale waarde hebt. Dus je moet opzoeken hoeveel records erzijn. $volgende mag nooit hoger worden dan het aantal records en $vorige mag nooit lager worden dan 0. Daarnaast mag 'vorige' niet te zien zijn als je de records 0 tot/met $max bekijkt en 'volgende' mag niet te zien zijn als je de laatste berichten bekijkt...
Elwin
Is nog ingewikkelder dan ik dacht, maar ik ga het proberen!
Gewijzigd op 05/03/2004 22:05:00 door Vincent
gezet. Als ik zo'n pagina open zou ik graag een next knop en een back knop
willen hebben, ik kan dit wel met html maar dat neemt heel veel tijd in
beslag. ik hoorde dat dit ook met php kan en dat dat heel veel tijd scheeld.
Maar ik kan niet vinden hoe dat moet, weten julie dat wel?
bvd peter
Dan zou ik het script op bovenstaande link nemen, en dan op de pagina waar het bericht staat max aantal berichten per pagina op 1 zetten.