<title> uit database halen

Status
Niet open voor verdere reacties.

Skoebie

Gebruiker
Lid geworden
11 nov 2007
Berichten
21
Hey Helpmij'e(r)s:thumb:

Op mijn website wil ik graag dat de <title> gehaald wordt uit een mysql tabel.

Dit is de code op index.php:
PHP:
<?php 
$query = "SELECT titel,code,date,commentaar,tags FROM cat_test WHERE id = '1'";  
$resultaat = mysql_query($query) or die ("query mislukt");  
$final = mysql_fetch_array($resultaat); 
$title = $final['titel'];      // Hier wilde ik $title maken en dan echo'en in header.php <title> 
?>

Dit is header.php:
PHP:
<title>Site.nl - <?php echo $title; ?></title>

Als ik nu in index.php $title = "test" ,, invul, dan komt er netjes Site.nl - test te staan. Probeer ik het uit de database te halen dan staat er alleen site.nl - -

Weet iemand hoe ik dit probleem kan verhelpen?
 
Je roept index.php ook aan voor dat je header.php aanroept?
 
Nee

include header.php

hier komt index.php

include footer.php


Op die manier heb ik et. dus ik open index.php die header en footer include.
 
Laatst bewerkt:
Vindt je het gek dat het dan niet werkt?

Zo ziet het er dan dus uit:
PHP:
<title>Site.nl - <?php echo $title; ?></title>

<?php  
$query = "SELECT titel,code,date,commentaar,tags FROM cat_test WHERE id = '1'";   
$resultaat = mysql_query($query) or die ("query mislukt");   
$final = mysql_fetch_array($resultaat);  
$title = $final['titel'];  
?>
Tja dan ga je eerst $title aanroepen om er vervolgens pas een waarde aan toe te wijzen.

Dan kun je beter die query uitvoeren binnen header.php

Dan wordt je header.php zo:
PHP:
<?php  
$query = "SELECT titel,code,date,commentaar,tags FROM cat_test WHERE id = '1'";   
$resultaat = mysql_query($query) or die ("query mislukt");   
$final = mysql_fetch_array($resultaat);  
$title = $final['titel'];  
?>
<title>Site.nl - <?php echo $title; ?></title>
 
Even één opmerking. Niet om te zeuren of zo, ik neem aan dat je id veld een INTEGER is, dan hoeven er toch geen quotes om de waarde?
 
Is volgens mij niet verplicht.

Quotes er om heen kan ook voor de leesbaarheid zijn.
 
Vind je het niet gemakkelijker om die query in een functie te plaatsen of zo? Plaats deze dan in een extern bestand met alle functies die je dan op je site maakt...

Het zou er dan zo kunnen uitzien
Code:
<?php
include('include.inc.php'); // Het bestand waar je al je functies/queries inzet
$title = getTitle(); // De functie getTitle wordt aangeroepen dat in je include.inc file zit en vult de variabele $title met de titel van je pagina
generateHeader($title);  // De functie generateHeader wordt aangeroepen dat in je include.inc file zit en je geeft als parameter variabele title mee

Je include.inc.php file kan er dan als volgt uitzien
Code:
<?php

function getTitle(){
        $query = "SELECT titel,code,date,commentaar,tags FROM cat_test WHERE id = '1'";   
        $resultaat = mysql_query($query) or die ("query mislukt");   
        $final = mysql_fetch_array($resultaat);  
        $title = $final['titel'];
        return $title;  
}

function generateHeader([B]$page[/B]) {
	echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
	echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
	echo "<head>\n";
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
	
	echo "<title>[B]$page[/B]</title>\n";
	
	echo "</head>\n";
	echo "<body>\n";
}

?>
 
Laatst bewerkt:
Even één opmerking. Niet om te zeuren of zo, ik neem aan dat je id veld een INTEGER is, dan hoeven er toch geen quotes om de waarde?

Het is wel aan te raden, stukje consistentie. Als er toevallig een keer iets anders dan een INT in je query staat, kun je problemen krijgen:

SELECT x FROM y WHERE id = 'aba dade'
=>
Aantal rijen = 0

SELECT x FROM y WHERE id = aba dade
=>
SQL-error.
 
Vindt je het gek dat het dan niet werkt?
.
Dan wordt je header.php zo:
PHP:
<?php  
$query = "SELECT titel,code,date,commentaar,tags FROM cat_test WHERE id = '1'";   
$resultaat = mysql_query($query) or die ("query mislukt");   
$final = mysql_fetch_array($resultaat);  
$title = $final['titel'];  
?>
<title>Site.nl - <?php echo $title; ?></title>

Bedankt voor alle reactie's tot dusver.

Het probleem is dat ik voor elke pagina een ander ID gebruik dus als ik alles in de header zou zetten in plaats van de pagina's, wisselt het ID niet en blijft de <title> overal hetzelfde.

Wat ik eigenlijk wil is dat ik losse pagina's heb waarvan ik maar 1 keer het ID hoef te veranderen per pagina zodat alle info, title, meta tags veranderen op die pagina. De info etc. lukt wel maar als ik het op jou manier doe lukt de title niet.


Even één opmerking. Niet om te zeuren of zo, ik neem aan dat je id veld een INTEGER is, dan hoeven er toch geen quotes om de waarde?
Ja die is INT :)
 
Laatst bewerkt:
Hoe roep je een andere pagina aan dan?

Als je hier een $_GET-variabele voor gaat gebruiken kun je die makkelijk aan je header.php koppelen.
 
Het is wel aan te raden, stukje consistentie. Als er toevallig een keer iets anders dan een INT in je query staat, kun je problemen krijgen:

SELECT x FROM y WHERE id = 'aba dade'
=>
Aantal rijen = 0

SELECT x FROM y WHERE id = aba dade
=>
SQL-error.

Oké, maar ik dacht dat het ook echt FOUT was om een integer op te vragen met quotes.
 
Bedankt voor alle reactie's.

Ik heb nu de query laten aanroepen voordat ik header.php include. Nu werkt het.

Thx :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan