SQL snelkoppelingen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefaan

Stefaan

20/11/2006 19:50:00
Quote Anchor link
Mijn probleem situeert zich als volgt. Ik sta in voor de newsletter van mijn bedrijf. vb: http://www.elgbwestvlaanderen.be/newsletter/07.

Alle artikels worden handmatig ingevoerd. Nu zou ik willen alle artikels uit SQL halen. M.a.w. moet een PHP-script lezen welke artikelen er zijn aangemaakt en daaruit een menuutje maken links. Dit menuutje maken links is geen probleem, alsook hoe ik heel de SQL structuur moet maken. Het is me alleen niet duidelijk hoe ik kan zorgen dat er snelkoppelingen moeten worden aangemaakt voor het linkermenu zodat die dan gelinkt worden (automatisch) met het terug te geven SQLgegevens...

Iemand die mij kan helpen???? Ik heb er me al suf op gezocht! Iemand die me wil helpen kan gerust mijn code krijgen om te zien waar ik helemaal de mist in ga...

alvast bedankt!!
 
PHP hulp

PHP hulp

19/11/2024 01:44:08
 
Winston Smith

Winston Smith

20/11/2006 20:43:00
Quote Anchor link
Ok, als ik het goed begrijp is het geen probleem voor je om de gegevens op te halen uit de database? Je menuutje bestaat immers uit een titel die je uit de database haalt neem ik aan?

In dat geval maak je linkjes in het menu, waarbij je ook een 'id' meegeeft in de link. Vervolgens maak je een aparte pagina aan, waar je die id uit de link haalt en waarmee je een SQL-statement maakt waarbij het juiste artikel uit de database wordt gehaald.

Ziet je database er bv. zo uit:
id VARCHAR (255) NOT NULL AUTO_INCREMENT PRIMARY KEY,
titel VARCHAR (255) NOT NULL,
artikel TEXT NOT NULL

Dan heb je een veld 'id'. Bij het menuutje links haal je dus de titel op. Zorg ervoor dat je ook de id ophaalt (SELECT id, titel FROM ...), en plaats de id in de link via, bv.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$query
= "SELECT id,titel FROM tabel";
$result = mysql_query($query) or die(mysql_error());

while($arr = mysql_fetch_array($result)) {
    echo '<a href="index.php?page=artikel&id=' . $arr['id'] . '">' . $arr['titel'] . '</a>';
    }

?>


Je ziet nu in je menu, als het goed is, een linkje die er in de statusbalk zo uitziet: site.nl/index.php?page=artikel&id=3012

Vervolgens maak je een pagina artikel.php aan, waarbij je via $_GET['id'], die id ophaalt, en met de juiste query het volledige artikel uit de database ophaalt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(!is_numeric($_GET['id'])) {
    echo 'Ongeldig nummer<br />';
}
else {
    $query = "SELECT artikel FROM table WHERE id = '" . $id . "'";
    $result = mysql_query($query) or die(mysql_error());
    
    $artikel = mysql_fetch_array($result);
    print $artikel['artikel'];
}

?>


Artikel.php voeg je trouwens in als $_GET['page'] gelijk is aan 'artikel': op je index.php doe je dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$page
= htmlentities($_GET['page']);

if($page == 'artikel') {
    include('content/artikel.php');
}

?>


Hmm...enigszins onduidelijk, maar ik hoop dat je er wat aan hebt (en ik hoop dat dit überhaupt je probleem was :+)

Edit:
Ik heb het even snel getypt, dus ik geef geen enkele garantie dat codes werken en ook niet dat ze veilig zijn >:)

En nu ik het nog eens nalees: ophalen en de beschikbare artikel tonen doe je dus op de manier zoals ik hierboven al uitlegde.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// Heeeel simpeltjes uitgelegd :)
$query = "SELECT id, titel FROM tabel";
$result = mysql_query($query) or die(mysql_error());

while($arr = mysql_fetch_array($result)) {
    print '<a href="index.php?page=artikel&id=' . $arr['id'] . '">' . $arr['titel'] . '</a>';
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
 
Stefaan

Stefaan

21/11/2006 19:40:00
Quote Anchor link
Kasper,

Ik kan al redelijk uit de voeten met PHP maar ik moet het gewoon evengezien hebben hoe de vork aan de steel zit voor bepaalde dingen.
Je code werkte niet helemaal maar je hebt me getoond hoe het moet!
Alvast SUPERBEANKT! Ik ben een tevreden mens nu :-)
 
Frank -

Frank -

21/11/2006 19:49:00
Quote Anchor link
@Kasper:
Quote:
id VARCHAR (255) NOT NULL AUTO_INCREMENT PRIMARY KEY,
t
Een VARCHAR met auto_increment? Die is nieuw voor mij. Voor een id gebruik je een INT of een ander nummeriek datatype, maar zeker geen VARCHAR.

@Stefaan: Maak van het id een INT, dan zal dit in elk geval niet fout gaan.
 
Stefaan

Stefaan

21/11/2006 19:55:00
Quote Anchor link
yupyup, already did ;-)
 



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.