Een korte tutorial over het optimaal scoren bij Google. Hierin wordt slechts een klein deel van de vele mogelijkheden uitgelegd.
De structuur van je website
In deze tutorial leg ik je uit hoe je optimaal scored bij Google. Ik ga er vanuit dat je geen frames gebruikt maar gewoon tables. Wanneer je frames gebruikt zou ik direct overstappen naar tables want wanneer je pagina uit frames bestaat, indexeert Google je website erg slecht, omdat Google geen frames herkent.
Google kijkt naar de volgorde van je code. Alles wat in de code bovenin staat, wordt belangrijker geacht dan hetgeen wat onder aan je code staat. Tegenwoordig zou je met CSS (Cascading Style Sheets) je website moeten opbouwen. Wanneer je een complexere layout hebt ontworpen en je wordt gek van CSS dan doe je dit al gauw met tables. Ook de nieuwe versie van PHPhulp is niet uit alleen maar divjes opgebouwd, maar bestaat ook voor een groot deel uit tables.
Om te scoren bij Google moet je dus zorgen dat je main tabel (met al jou belangrijke teksten waar je website om draait), zo hoog mogelijk in de code (source / bron) terug te vinden is. Dit zorgt ervoordat alle belangrijke informatie zo hoog mogelijk wordt opgenomen door Google.
HTML opmaak
Allereerst zorg je ervoor dat de title van je pagina (<title> en </title>) overeenkomt met het onderwerp van je pagina. Als je bijvoorbeeld de pagina tutorials hebt, moet ook de titel van je pagina tutorials heten.
Je kunt d.m.v. standaard HTML tags, aangeven wat erg belangrijk is en wat juist minder belangrijk is. Dit doe je door titels van je pagina, ook in de pagina zelf te noemen in een <h1>tag</h1>. Google zal herkennen dat dit tussen een <h1> tag staat, en zal dit als zeer belangrijk opvatten. Titlels van subpaginas kun je dan bijvoorbeeld tussen een <h2>tag</h2> zetten.
Wanneer je de <h1></h1> tags gebruikt, zal de tekst die hierin staat, erg groot zijn. Dit omdat <h1> </h1> een koptekst is. Dit kun je simpel met CSS aanpassen. Definieer dit als volgt in je pagina:
Zet dit tussen <head> en <head>:
<style type="text/css"> h1 { font-family: Verdana; /* lettertype van de tekst */ font-size: 12px; /* groote van je tekst in pixels */ color: #000000; /* kleur van je tekst in html kleur code */ } </style>
Ditzelfde kun je dus doen met een h2 tag, h3 tag etc.
Vriendelijke URL adressen
Wanneer je gebruik maakt van PHP, heb je al gauw dynamische URL adressen. Dit zijn dus adressen waar je query strings mee doorgeeeft (http://www.phphulp.nl/php/tutorials.php?cat=3&id=163&pid=321). Dit is dus onvriendelijk en op een gegeven moment zal Google deze URL adressen niet meer volgen omdat ze gezien worden als spam.
Wat je hieraan kunt doen is gebruik maken van je .htaccess file. Via de .htaccess file kun je dus je URL adressen vriendelijk maken. Wel moet de module MOD REWRITE mee gecompiled zijn bij de installatie van Apache. Je zult dan URL adressen kunnen gebruiken die beter worden opgenomen door Google .
Dit was dus een erg kleine tutorial over het scoren bij Google. Er is nog veel meer waardoor je kunt zorgen dat je goed bij Google wordt opgenomen maar dit vind ik persoonlijk het belangrijkste.
Je wil dus iets uitlezen uit een database. Eigenlijk is dat je 1e fout al, aangezien je iets wil uitlezen uit een tabel. Je hebt je server (bijvoorbeeld localhost) Daaronder je databases (bijvoorbeeld user007) Daaronder je tables (bijvoorbeeld namen, plaatsen)
Je wil dus je tables uitlezen. Je verbinding maak je met je server, en die zet je met de gegevens die je mee stuurt naar de juiste database.
Simpel, je maakt connectie met je gegevens, en je geeft daarna aan welke DB je wil gebruiken. Let ook op de uitlijning en de variabele namen. Hou dit duidelijk voor jezelf. lowercase, geen gekke tekens.
Tabel uitlezen met een SQL statement
De verbinding is er, nu de rest nog. Je wil alle namen uit je table 'namen' uitlezen. Voor mensen met PHPMyAdmin komt dit vrij bekend voor:
<? $sql = "SELECT `persoon` FROM `namen` WHERE `persoon` = 'peter'"; ?>
`Backticks` dus. Leer jezelf dit af. Backticks zijn slecht evil en moeten de eeuwigdurende zakjeuk krijgen. Je hebt ze niet nodig en ze maken het allemaal onduidelijk.
Voor je 1e goede statement maak je er dit van:
<? $sql = 'SELECT persoon FROM namen WHERE persoon = "peter"'; ?>
Weer uitlijning voor duidelijkheid. Dit doet hetzelfde als hierboven, zonder die verwarrende ``. Er staat nu begrijpelijk, selecteer het veld persoon, uit de tabel namen waar de waarde van persoon 'peter' is. Kind kan de was doen. Maarja nu kan je nog niets, het is eigenlijk gewoon een string, een losse variabele met inhoud. Op naar de volgende stap!
Om je query uit te voeren gebruik je mysql_query (doh). Hieruit komt een resultset, dus noem je variabele ook duidelijk ernaar.
<? $sql = 'SELECT persoon FROM namen WHERE persoon = "peter"'; $res = mysql_query($sql,$link); ?>
$link hier is niet nodig , maar het kan duidelijkheid geven met meerdere verbindingen. Eigen keus.
Beginnersfout deluxe!
Dus nu zit in $res ons resultaat van de query? Kan , maar je mag hier niet van uit gaan! Je query kan fout zijn, er kan een tikfout in zitten en je kan gewoon geen results hebben omdat er niets voldoet aan je voorwaarde. Hoe lossen we dit op? Foutafhandeling!
Nou zijn hiervoor de technische en de duidelijke manier. Ik pak de laatste.
<? $sql = 'SELECT persoon FROM namen WHERE persoon = "peter"'; $res = mysql_query($sql,$link); if ($res && mysql_num_rows($res) >= 1) { echo 'Resultaat!'; } else { echo 'Geen data gevonden'; } ?>
Hier staat in het kort: Als er resultaat komt uit je query functie, en het aantal rijen dat je resultaat telt groter of gelijk is aan 1. Oftewel, query gelukt en er is een uitkomst!
Nu kan je met $res nog niet al te veel. Als ik een aantal mensen heb die peter heten wil ik hun adressen allemaal wel eens weten. Hoe haal ik die nu uit $res?
Weer, een aantal manieren, ik zal de meest duidelijke uitleggen.
<? $sql = 'SELECT persoon, adres FROM namen WHERE persoon = "peter"'; $res = mysql_query($sql,$link); if ($res && mysql_num_rows($res) >= 1) { while ($row = mysql_fetch_array($res)) { echo 'naam: '.$row['persoon'].' adres: '.$row['adres'].'<br>'; } } else { echo 'Geen data gevonden'; } ?>
Dit begint er al op te lijken en is eigenlijk de hele basis hoe het goed kan. $res is niets meer dan een array met waardes die je uitleest. Met mysql_fetch_array($res) haal je deze per regel uit elkaar en zet ze in dit geval in $row, weer een heldere naam voor een array met alleen rijen!
in $row staan nu elke regel die je uitleest (while) de waardes uit persoon en adres uit de tabel namen.
Opmaak in table
Voor een strak overzichtje wil je wellicht de hele rataplan in een tabel zetten, hoe doe je dit netjes? Alehoep!
<? $sql = 'SELECT persoon, adres FROM namen WHERE persoon = "peter"'; $res = mysql_query($sql,$link); if ($res && mysql_num_rows($res) >= 1) { echo '<table border="10"> <tr> <td>naam</td> <td>adres</td> </tr>';
Er staat: Is er resultaat (if en de num_rows) , begin een table. Nadat er een table is begonnen vul je deze met rijen (while en de fetch_array). Als deze erin staan sluit je je table weer binnen je if. En is er geen result , krijg je de text Geen data gevonden.
The end!
Hoop dat het een beetje duidelijk is. Iedereen kan dit en kan dit snappen. Het is simpel uit te breiden naar eigen inzicht. Vooral met foutafhandeling zijn er nog een boel toevoegingen, maar zo kan je je al aardig redden.