Beste leden,
Voor een CMS wil ik graag de code die ook gebruikt wordt om de titel van de tekst weer te geven ook gebruiken om de titel van de complete pagina (bovenin de navigatiebalk of voor Google) weer te geven. Daar heb ik nu gewoon de code van de titel van de tekst voor gebruikt:
Het is volgens mij belangrijk om te vertellen dat de content en de titel (waar dus exact dezelfde code voor wordt gebruikt) ook veel lager in de PHP code wordt genoemd. De str_replace wordt gebruikt voor de url en het weer omzetten naar titel.Code:<?php $page = $_GET['page']; $page = str_replace("_", " ", $page); $query = "SELECT titel, content FROM content WHERE titel = '".mysql_real_escape_string($page)."'"; $resultaat = mysql_query($query); if($resultaat && mysql_num_rows($resultaat) == 1) { $rij = mysql_fetch_array($resultaat); $titel = $rij['titel']; $content = $rij['content']; echo '<title>'.$titel.'</title>'; }else{ $query = "SELECT volgordeid, titel, content FROM content WHERE volgordeid = '1'"; $resultaat = mysql_query($query); if($resultaat && mysql_num_rows($resultaat) == 1) { $rij = mysql_fetch_array($resultaat); $titel = $rij['titel']; $content = $rij['content']; echo '<title>'.$titel.'</title>'; } } ?>
VRAAG: Kan ik het bovenstaande ook veel korter maken? Ik heb het idee dat dit een vrij omslachtige manier van coderen is voor zoiets simpels als ik nodig heb.
Alvast heel erg bedankt voor jullie hulp!
Groet,
Joost
- PHP code verkleinen
-
23-12-2009, 09:15 #1
- Berichten
- 942
- Lid sinds
- 15 Jaar
PHP code verkleinen
-
In de schijnwerper
Echt Mama | Tips voor moeders | DA7 PA11 - CF10 TF11Website te koopGoedkope 10 Gbps Virtual Private Server (VPS) in Nederland (Met PURE NVMe opslag!)HostingProfessionele tekstschrijver 2 cent per woord (geen AI)Freelance / WerkVacature €4500 p/m: WordPress Developer bij Festinger VaultFreelance / Werk -
23-12-2009, 09:48 #2
- Berichten
- 348
- Lid sinds
- 15 Jaar
Als ik het goed begrijp vraag je dus even verderop in de pagina weer alles op?
Als dat zo is ben je idd verkeerd bezig. Je kunt beter bovenaan in je code alles opvragen en in variabelen stoppen. Dan kun je die variabelen door de hele pagina gebruiken.
Dan houd je dus over;
PHP Code:echo '<title>'.$titel.'</title>';
-
23-12-2009, 10:20 #3Particulier
- Berichten
- 394
- Lid sinds
- 15 Jaar
Als ik het goed begrijp vraag je dus even verderop in de pagina weer alles op?
Als dat zo is ben je idd verkeerd bezig. Je kunt beter bovenaan in je code alles opvragen en in variabelen stoppen. Dan kun je die variabelen door de hele pagina gebruiken.
Dan houd je dus over;
PHP Code:echo '<title>'.$titel.'</title>';
PHP Code:<?= $titel ?>
-
23-12-2009, 10:50 #4
- Berichten
- 10
- Lid sinds
- 17 Jaar
Hiervoor moet je wel de INI directive short_open_tag hebben voor aanstaan. Bij de meeste PHP installaties is dit het geval, maar bij oudere versies kan dit uitstaan. Tenzij je je script enkel op installaties draait die je zelf controleert, zou ik de gewone syntax gebruiken.
Je maakt vaak nutteloze variabelen aan, dit neemt enkel maar geheugen in beslag, wat de prestatie van je script niet ten goede komt.
Waarom maak je bijvoorbeeld een variabele $page aan, waar je de waarde van $_GET['page'] aan toewijst?
Hetzelfde kan gezegd worden voor $titel en $content.
Tenslotte moet je je queries ook niet eerst weer aan een variabele toewijzen, tenzij je ze later owv debugredenen wil laten wegschrijven of wil weergeven.
PHP Code:<?php
$resultaat = mysql_query("SELECT titel, content FROM content WHERE titel = '".mysql_real_escape_string(str_replace("_", " ", $_GET['page']))."'");
if($resultaat && mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
echo '<title>'.$rij['titel'].'</title>';
}
else
{
$resultaat = mysql_query("SELECT volgordeid, titel, content FROM content WHERE volgordeid = '1'");
if($resultaat && mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
echo '<title>'.$rij['titel'].'</title>';
}
}
?>
En ten slotte, waarom selecteer je in je tweede query het volgordeid als je dat al weet? Je geeft in je WHERE clause nl. aan dat het gelijk is aan 1... En is volgordeid in je database geen integer? Want in je WHERE clause behandel je het als een string (quotes eromheen)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic