Datum in nederlandse notatie + rest

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Crispijn -

Crispijn -

16/05/2006 21:15:00
Quote Anchor link
Ha allemaal. Geen terras weer dus nu maar weer druk met php bezig.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>';
                }

?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
                        $row
['bericht'] = ubb($row['bericht']);
?>


Heel raar want hij deed 't dus zonder die datum functie wel. Wat loopt hier nu mis?

Groet! Cris!
 
PHP hulp

PHP hulp

16/11/2024 20:24:42
 
Frank -

Frank -

16/05/2006 21:20:00
Quote Anchor link
Dit verdient geen schoonheidsprijs:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";

                    }

?>

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.
 
Crispijn -

Crispijn -

16/05/2006 21:25:00
Quote Anchor link
Ik was nog van plan de boel op te schonen. Ik zal het meteen even doen Frank. Had niet verwacht dat dit problemen zou opleveren.

Ik ga het even proberen!
 
Crispijn -

Crispijn -

16/05/2006 22:03:00
Quote Anchor link
Oke, ik heb de boel even opgeschoont en tijdelijk maar even die ubb functie uitgeschakeld.

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
 
Jan Koehoorn

Jan Koehoorn

16/05/2006 22:30:00
Quote Anchor link
En welke query gebruik je nu?
 
Crispijn -

Crispijn -

16/05/2006 22:44:00
Quote Anchor link
Jan, het gaat om de volgende query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 ());;


Zit ik nu te lang achter de computer of klopt deze gewoon en is er iets raars aan de hand?

Groetjes Cris
 
Crispijn -

Crispijn -

17/05/2006 11:20:00
Quote Anchor link
Ik heb nu voor de zekerheid ook nog eens deze query door phpmyadmin gehaald en dat gaat gewoon goed.

verder op in het script doe ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
                }

?>


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 -
 
Jelle -

Jelle -

17/05/2006 11:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];

?>


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 -
 
Crispijn -

Crispijn -

17/05/2006 11:54:00
Quote Anchor link
Ik wist helemaal niet dat dat ook kon! Super bedankt Jordy. Hij doet het nu!
 
Jelle -

Jelle -

17/05/2006 12:45:00
Quote Anchor link
Heb je weer wat geleert :-)
 
Frank -

Frank -

17/05/2006 12:55:00
Quote Anchor link
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.
 
Crispijn -

Crispijn -

17/05/2006 12:58:00
Quote Anchor link
Ik neem 't mee Frank. Bedankt voor je tips en precisie.

Hoi hoi!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.