Database

  • Onderwerp starter Onderwerp starter Verwijderd lid 141197
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
V

Verwijderd lid 141197

Hallo
ik heb op mijn sitehttp://www.(verwijderd).eu/t/nieuws.html
een nieuws pagina
maar nu staan de artikelen in de html pagina ik wil graag dat deze uit een database worden opgehaald
dus:
site wordt geladen php haalde de laatste 3/4/5 artikelen op en plaatst deze
en bij de archief pagina laadt hij alles behalve de laatste 3/4/5
hoe kan dit het simpelst met php?
 
Er vanuitgaande dat je een MySQL database gebruikt (of vergelijkbaar):
Bij nieuws iets in deze geest plaatsen:
Code:
SELECT * FROM nieuws ORDER BY id DESC LIMIT 3
 
Laatst bewerkt:
dus als ik in php praat:
PHP:
<?php
mysql_connect("servernaam","user","wachtwoord");
mysql_select_db("databasenaam");
(lees allen de laatste 4)
$titel = mysql_field_titel
$tekst = mysql_field_tekst
?>
<?php $titel?>
<?php $tekst?>
hoe kan ik de dingen tussen haakjes uitvoeren?:o

en dan zou ik een database moeten hebben met de velden titel,tekst,(en misschien iets voor de laatste 4)
 
Laatst bewerkt door een moderator:
Even aangenomen dat je een tabel (posts) hebt in je database die er ongeveer zo uitziet:

[table="width: 500, class: dotted"][tr][td]id [/td][td] title [/td][td] content [/td][td] datum[/td][/tr]
[tr][td]1 [/td][td] Eerste post [/td][td] Dit is de allereerste post hier [/td][td] 1-6-2009 [/td][/tr]
[tr][td]2 [/td][td] Tweede post [/td][td] Ja, inderdaad alweer een post [/td][td] 2-6-2009 [/td][/tr]
[tr][td]3 [/td][td] Derde post [/td][td] Nog één? Damn, smooth sailin' [/td][td] 3-6-2009 [/td][/tr]
[tr][td]4 [/td][td] Vierde post [/td][td] Nu is het afgelopen [/td][td] 4-6-2009 [/td][/tr]
[/table]

(N.B. database != tabel)

Dan zou je code er zo uit kunnen zien:

PHP:
<?php
  mysql_connect( "servernaam" , "user" , "wachtwoord" ); 
  mysql_select_db ( "databasenaam" );

  $query = "SELECT id, title, content, datum FROM posts ORDER BY datum DESC LIMIT 4";

  $result = mysql_query ( $query );

  while ( $row = mysql_fetch_assoc ( $result ) ) {
    echo $row[ 'title' ];
    echo $row[ 'content' ];
    echo $row[ 'datum' ];
  }
?>
 
Nou nee, niet helemaal.

De connectie met de database was in ieder geval goed! :thumb:

Het klopt dat je daarna slechts de vier betreffende posts moet ophalen. :thumb:

Over $titel = mysql_field_titel, dat klopt eigenlijk ook wel ongeveer, maar je zou dan wel eerst een array moeten fetchen van de data. Dan kun je met $titel = $row['titel'] de waarde toewijzen. :)

I.p.v. <?php $titel?> moet je dan <?php echo $titel; ?> gebruiken. Maar de opzet was goed hoor!! :thumb:
 
PHP:
<?php
 mysql_connect( "servernaam" , "user" , "wachtwoord" ); 
 mysql_select_db ( "databasenaam" );
  $query = "SELECT id, title, content, datum FROM posts ORDER BY datum DESC LIMIT 4";
  $result = mysql_query ( $query );
  while ( $row = mysql_fetch_assoc ( $result ) ) {
  $titel =$row['titel']
  $tekst =$row['tekst']
  $datum =$row['date']
  }
?>
<?php echo $titel ?>
<?php echo $tekst ?>
<?php echo $datum ?>
<?php echo $titel ?>
<?php echo $tekst ?>
<?php echo $datum ?>

zet php de laatste automatich op de eerste echo enz?
 
PHP:
<?php
 mysql_connect( "servernaam" , "user" , "wachtwoord" ); 
 mysql_select_db ( "databasenaam" );
  $query = "SELECT id, title, content, datum FROM posts ORDER BY datum DESC LIMIT 4";
  $result = mysql_query ( $query );
  while ( $row = mysql_fetch_assoc ( $result ) ) {
  $titel =$row['titel']
  $tekst =$row['tekst']
  $datum =$row['date']
  }
?>
<?php echo $titel ?>
<?php echo $tekst ?>
<?php echo $datum ?>
<?php echo $titel ?>
<?php echo $tekst ?>
<?php echo $datum ?>

zet php de laatste automatich op de eerste echo enz?

Hij orderd op datum ;)
PHP:
ORDER BY datum DESC
 
PHP:
mysql_query ( "INSERT INTO tabelnaam (veld1, veld2, veld3, enz) VALUES ('waarde1', 'waarde2', 'waarde3', 'waardeenz')" );
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan