Hallo hallo,

Ik ben weer eens bezig met php dingetjes en er gaat heel wat mis :-)

Ik heb error_reporting op ALL staan en ik krijg bij dit soort zinnetjes allemaal foutmeldingen. Iemand een idee wat ik verkeerd doe?

code: <? $row[titel] = nl2br($row[titel]); ?>

melding: Notice: Use of undefined constant titel - assumed 'titel' in /home/users/aembeftp/aemb.eu/pages/inc_darchief.php on line 93
['titel']<-- vergeet je aanhalingstekens niet!
als ik dat doe dan krijgt het bericht dat ik post geen titel maar de de titel '$row[titel]' ?
Waarschijnlijk zijn er dus meer plekken waar je de aanhalingstekens vergeten bent. Probeer anders met 'zoeken' van notepad (of welke editor je ook gebruikt) alle $row[titel] te vinden en te vervangen door $row['titel']
Marije, titel is een naam van een kolom in de database, en is dus een string in PHP wordt dan 'titel'. Daarom wordt het $row['titel']. Stel dat je een variabele naam zou gebruiken dan zou het zoiets worden: $row[$titel]. Als je een constante zou gebruiken zou het bijvoorbeeld worden: $row[TITEL].

Maar bij jou is het een string, dus je moet aanhalingstekens om titel gebruiken.

Zijn gewoon basis PHP dingetjes die heel veel mensen na een jaar nog fout doen.
ok fiew... volgens mij is het gelukt... ik ben bijna error vrij haha. Bedankt hoor. ik was inderdaad op een hoop plaatsen de quotes vergeten.

Nu heb ik nog 1 fout en dat komt waarschijnlijk omdat ik onderstaande code heb vervangen door 'betere' code. Ten minste dat is wat ik gelezen heb.
Oude code:
<? if (!$_GET[id] && !$_POST[id]) ?>
vervangen door: <? if ( !isset($_REQUEST['id']) ) ?>

en
<? if ($_POST["submit"] && $_POST["naam"] && $_POST["msg"]) ?>
vervangen door: <? if ( isset($_POST['submit'], $_POST['naam'], $_POST['msg']) ) ?>

Alleen hierdoor weet mijn browser het 'id' niet meer. Dit was de querie:

<? $sql = "SELECT id,titel,msg,datum, DATE_FORMAT(datum, '%d %m %Y') as nicedatum, YEAR(datum) as year, MONTH(datum) as month FROM weblog WHERE id = '$_GET[id]'"; ?>

Het zal wel aan de $_GET[id] liggen gok ik... omdat ik nu REQUEST gebruikt?


Iemand nog een idee? :)
Inderdaad, ook bij $_GET['id'] hoor je quotes te gebruiken.
[edit]Pgfrank was me al voor.
Ook variabelen buiten quotes halen[/edit]

probeer dit eens

<?php
$sql = 'SELECT id,titel,msg,datum, DATE_FORMAT(datum, '%d %m %Y') as nicedatum, YEAR(datum) as year, MONTH(datum) as month FROM weblog WHERE id = '.$_GET['id'];  
?>
dan krijg ik een foutmelding robert ;)
Weet je dan zeker dat je query goed is? Heb je deze al in (meest voordehand liggende: phpmyadmin) geprobeerd?
Zet de query tussen dubbele quotes, dan ga je niet de mist in met de enkele quotes die je ín de query nodig hebt.
<?php
$sql = "
SELECT
id,
titel,
msg,
datum,
DATE_FORMAT(datum, '%d %m %Y') as nicedatum,
YEAR(datum) as year,
MONTH(datum) as month
FROM
weblog
WHERE
id = ".$_GET['id'];
?>
Tevens noteer je de query overzichtelijk en bedenk je betere aliassen voor year en month. Dat zijn namelijk functienamen.

Reageren