Datum in nederlandse notatie + rest
Oke, ik ben bezig met mijn gastenboek scriptje. Ik had 't werkend totdat ik de tutorial van Jan op mijn scriptje ging uitproberen, met de bedoeling om de datum met een nederlandse tekst weer te geven.
Ik heb nu het volgende.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$weekdagnamen = array (zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag);
$maandnamen = array (1 => januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december);
$sql = "SELECT
DATE_FORMAT(datum, '%w') AS dag,
DATE_FORMAT(datum, '%d') AS datum,
DATE_FORMAT(datum, '%c') AS maand,
DATE_FORMAT(datum, '%Y') AS jaar,
naam,
email,
bericht,
website,
ip
FROM prikbord ORDER BY datum DESC";
$res = mysql_query($sql) or die (mysql_error ());;
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo '<div id="datum'.$color.'">';
echo '<p>' . $weekdagnamen[$row->dag] . ' ' . $row->datum . ' ' . $maandnamen[$row->maand] . ' ' . $row->jaar . '</div>';
echo '<div id="reactie'.$color.'">';
$row['bericht'] = ubb($row['bericht']);
echo "<p>$row[bericht]</p>";
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
}
else
{
echo '<div id="reactie0">Er staan nog geen berichten op het Prikbord.</div>';
}
?>
$weekdagnamen = array (zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag);
$maandnamen = array (1 => januari, februari, maart, april, mei, juni, juli, augustus, september, oktober, november, december);
$sql = "SELECT
DATE_FORMAT(datum, '%w') AS dag,
DATE_FORMAT(datum, '%d') AS datum,
DATE_FORMAT(datum, '%c') AS maand,
DATE_FORMAT(datum, '%Y') AS jaar,
naam,
email,
bericht,
website,
ip
FROM prikbord ORDER BY datum DESC";
$res = mysql_query($sql) or die (mysql_error ());;
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo '<div id="datum'.$color.'">';
echo '<p>' . $weekdagnamen[$row->dag] . ' ' . $row->datum . ' ' . $maandnamen[$row->maand] . ' ' . $row->jaar . '</div>';
echo '<div id="reactie'.$color.'">';
$row['bericht'] = ubb($row['bericht']);
echo "<p>$row[bericht]</p>";
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
}
else
{
echo '<div id="reactie0">Er staan nog geen berichten op het Prikbord.</div>';
}
?>
Ik krijg dus de volgende foutmelding:
Quote:
Warning: Cannot use a scalar value as an array in /var/www/v/vervandekade.nl/HTML/inhoud/prikbord.php on line 134
Regel 134 is in dit script het deel van
Heel raar want hij deed 't dus zonder die datum functie wel. Wat loopt hier nu mis?
Groet! Cris!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo '<div id="datum'.$color.'">';
echo '<p>' . $weekdagnamen[$row->dag] . ' ' . $row->datum . ' ' . $maandnamen[$row->maand] . ' ' . $row->jaar . '</div>';
echo '<div id="reactie'.$color.'">';
$row['bericht'] = ubb($row['bericht']);
echo "<p>$row[bericht]</p>";
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
?>
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo '<div id="datum'.$color.'">';
echo '<p>' . $weekdagnamen[$row->dag] . ' ' . $row->datum . ' ' . $maandnamen[$row->maand] . ' ' . $row->jaar . '</div>';
echo '<div id="reactie'.$color.'">';
$row['bericht'] = ubb($row['bericht']);
echo "<p>$row[bericht]</p>";
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
?>
Waarom de ene keer dubbele quotes en dan weer enkele quotes? Verder hebben de sleutels in de array's helemaal geen quotes. Dit is vragen om problemen.
- Gebruik bij een echo enkele quotes, dan hoef je geen dubbele quotes in de html te escapen.
- Een sleutel in een array hoort voorzien te zijn van quotes: $row['bericht'] is goed, $row[bericht] is fout...
- Met print_r($row); had je al kunnen achterhalen dat het niets met de datumfuncties te maken heeft. Die staan zowieso niet in je php-code, maar in je SQL. Dus waarom je daar een verband mee legt, is mij onduidelijk
Succes met debuggen.
Ik ga het even proberen!
Er zijn geen foutmeldingen meer.
Wat ik net ook al dacht te zien maar nu vastgesteld heb is dat alleen de datum wordt opgehaald met de query die ik nu gebruik. Maar ik heb wel alle velden aangeroepen. Deze komen 100% overeen, en werkten voor de datum functie wel.
Hoe kan dit nu? Wie kan me nog een tip geven?
Groetjes, Cris
En welke query gebruik je nu?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql = "SELECT
naam,
email,
bericht,
website,
ip,
DATE_FORMAT(datum, '%w') AS dag,
DATE_FORMAT(datum, '%d') AS datum,
DATE_FORMAT(datum, '%c') AS maand,
DATE_FORMAT(datum, '%Y') AS jaar
FROM prikbord ORDER BY datum DESC";
$res = mysql_query($sql) or die (mysql_error ());;
naam,
email,
bericht,
website,
ip,
DATE_FORMAT(datum, '%w') AS dag,
DATE_FORMAT(datum, '%d') AS datum,
DATE_FORMAT(datum, '%c') AS maand,
DATE_FORMAT(datum, '%Y') AS jaar
FROM prikbord ORDER BY datum DESC";
$res = mysql_query($sql) or die (mysql_error ());;
Zit ik nu te lang achter de computer of klopt deze gewoon en is er iets raars aan de hand?
Groetjes Cris
verder op in het script doe ik
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo "<div id=\"datum$color\">";
echo "" . $weekdagnamen[$row->dag] . " " . $row->datum . " " . $maandnamen[$row->maand] . " " . $row->jaar . "</div>";
echo "<div id=\"reactie$color\">";
//$row[bericht] = ubb($row[bericht]);
echo "<p>$row[bericht]</p>";
//echo $sql;
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
}
else
{
echo '<div id="reactie0">Er staan nog geen berichten op het Prikbord.</div>';
}
?>
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_object ($res))
{
$color ^= 1;
echo "<div id=\"subtitel\">$row[naam]</div>";
echo "<div id=\"datum$color\">";
echo "" . $weekdagnamen[$row->dag] . " " . $row->datum . " " . $maandnamen[$row->maand] . " " . $row->jaar . "</div>";
echo "<div id=\"reactie$color\">";
//$row[bericht] = ubb($row[bericht]);
echo "<p>$row[bericht]</p>";
//echo $sql;
echo "<a href=\"$row[website]\">Website</a> | <a href=\"mailto:$row[email]\">Email</a>";
echo "</div>";
}
}
else
{
echo '<div id="reactie0">Er staan nog geen berichten op het Prikbord.</div>';
}
?>
met de $row pakt hij dus wel de datum maar niet de andere gegevens.
Wie kan me dit uitleggen? Ik wordt steeds nieuwsgieriger!
Groet! Cris
Gewijzigd op 01/01/1970 01:00:00 door Crispijn -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// Object
$row = mysql_fetch_object($res);
echo $row->bericht;
// Array
$row = mysql_fetch_array($res);
echo $row['bericht'];
// Assoc
$row = mysql_fetch_assoc($res);
echo $row['bericht'];
?>
// Object
$row = mysql_fetch_object($res);
echo $row->bericht;
// Array
$row = mysql_fetch_array($res);
echo $row['bericht'];
// Assoc
$row = mysql_fetch_assoc($res);
echo $row['bericht'];
?>
jij doet
$row = mysql_fetch_object ($res);
en dan doe je
$row['bericht']
dat moet dus zijn
$row->bericht
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
Ik wist helemaal niet dat dat ook kon! Super bedankt Jordy. Hij doet het nu!
Heb je weer wat geleert :-)
mysql_fetch_object() is de langzaamste van de 3 fetch-functies. Persoonlijk zou ik de snelste nemen, mysql_fetch_assoc() en dan uiteraard de notatie $row['bericht'] hanteren.
Hoi hoi!