laatste bericht uit database halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thymen akker

thymen akker

21/05/2012 16:16:06
Quote Anchor link
hallo ik probeer een laatste bericht die nog niet gelezen is uit mijn database te halen maar ik kom er niet uit

ik heb een tut gelezen hier op php hulp maar die doet mij niet veel beter
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

  $sql
= mysql_query("SELECT * FROM `[messages]` WHERE `to`='{$data->login}' AND message = "" AND`read`='0'");
  $row = mysql_num_rows($sql);
        

echo 'bericht: '.$row['message'].';      
?>

dit is wat ik heb

db tabellen
id     IP     forwardedFor     time     from     to     subject     message     read     inbox     outbox     avatar
 
PHP hulp

PHP hulp

06/05/2024 18:14:24
 
Erwin H

Erwin H

21/05/2012 16:21:34
Quote Anchor link
Thymen akker op 21/05/2012 16:16:06:
AND message = ""

Dus met andere woorden, je selecteert alleen de berichten waarvan de message leeg is.... en vervolgens print je de message. Wat denk je zelf dat je op je scherm krijgt (hint: het zal niet veel tekst zijn).
 
Thymen akker

thymen akker

21/05/2012 16:22:22
Quote Anchor link
hoe krijg ik het dan ik dacht dat als je AND message = "" leeg laat dat hij het dan weer geeft

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/XXX/domains/XXXX/public_html/new2/messa ook krijg ik die fout
Gewijzigd op 21/05/2012 16:23:02 door thymen akker
 

21/05/2012 16:22:44
Quote Anchor link
laat maar
Gewijzigd op 21/05/2012 16:23:30 door
 
Erwin H

Erwin H

21/05/2012 16:24:54
Quote Anchor link
Verder zou ik ook eens gaan kijken naar het begrip "reserved words" in MySQL. 'from', 'to' en 'read' zijn dat namelijk allemaal en zou je dus NIET moeten gebruiken als kolomnamen:
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

P.S. backticks gebruiken om die toch wel te kunnen gebruiken is een zeer slecht lap middel, niet doen dus.

Toevoeging op 21/05/2012 16:25:42:

Thymen akker op 21/05/2012 16:22:22:
hoe krijg ik het dan ik dacht dat als je AND message = "" leeg laat dat hij het dan weer geeft

Als je een lege string echo'd krijg je een lege string te zien, wat anders?
 
Thymen akker

thymen akker

21/05/2012 16:38:23
Quote Anchor link
ik heb even gezocht op i-net en vond dit: (heb hem even veranderd..
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
<?php


$qry
= "SELECT
           message,
           subject,
           read,
           to
        FROM
            [messages]
            ORDER BY `time`"
;


# Als query is gelukt
if( $sql = mysql_query( $qry ) )
{

    # Als er items zijn
    if( mysql_num_rows( $sql ) > 0 )
    {

        while( $rec = mysql_fetch_assoc( $sql ) )
        {

            # Data weergeven
        }
    }

    else
    {
        echo 'Er zijn geen items gevonden.';
    }
}

else
{
    echo 'Er is een fout opgetreden met de database.';
}



      
?>


maar nu zegt hij Er is een fout opgetreden met de database.
config staat nog steeds goed
 
Erwin H

Erwin H

21/05/2012 16:39:27
Quote Anchor link
Je hebt mijn post over reserved words zeker niet gelezen....
 
Thymen akker

thymen akker

21/05/2012 16:40:34
Quote Anchor link
ja wel maar daar begreep ik al helenmaal niets van
 
Erwin H

Erwin H

21/05/2012 16:42:43
Quote Anchor link
from, to en read kan je niet als kolomnamen gebruiken. Zo simpel. Daar moet je dus gewoon andere namen voor bedenken. Voor de complete lijst van woorden die je niet kan gebruiken, check de link.
 
Thymen akker

thymen akker

21/05/2012 16:48:39
Quote Anchor link
$qry = "SELECT
message,
subject,
read,
to
FROM
[messages]
ORDER BY `time`";

ik doe nu tog:
"SELECTEER" message,subject,read,to, "VAN tabel" [messages] SORTEER OP tijd ?

If you want to check if you have named your table or column with a reserved word here is a script/process that will get you there:

er staat "TO" in maar to is het tabelletje waar het bericht is heen gegaan


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
--
-- Tabelstructuur voor tabel `[messages]`
--

CREATE TABLE IF NOT EXISTS `[messages]` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `IP` varchar(32) NOT NULL DEFAULT '',
  `forwardedFor` varchar(32) DEFAULT NULL,
  `time` datetime DEFAULT NULL,
  `from` varchar(16) DEFAULT NULL,
  `to` varchar(16) DEFAULT NULL,
  `subject` varchar(50) NOT NULL DEFAULT '',
  `message` text NOT NULL,
  `read` int(1) NOT NULL DEFAULT '0',
  `inbox` int(1) DEFAULT '1',
  `outbox` int(1) DEFAULT '1',
  `avatar` varchar(64) NOT NULL DEFAULT 'avatar.jpg',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=681 ;
Gewijzigd op 21/05/2012 16:51:16 door thymen akker
 
Erwin H

Erwin H

21/05/2012 16:50:46
Quote Anchor link
Erwin H op 21/05/2012 16:42:43:
from, to en read kan je niet als kolomnamen gebruiken.

Ik zie to en read nog steeds staan in je query, dus zolang je niets eraan doet gaat het niet werken....
 
Thymen akker

thymen akker

21/05/2012 16:53:24
Quote Anchor link
ik ga nu toch naar je luisteren..
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
<?php


$qry
= "SELECT
           message,
           subject,
           read,
            inbox
          
        FROM
            `[messages]`
            ORDER BY `time`"
;


# Als query is gelukt
if( $sql = mysql_query( $qry ) )
{

    # Als er items zijn
    if( mysql_num_rows( $sql ) > 0 )
    {

        while( $rec = mysql_fetch_assoc( $sql ) )
        {

            # Data weergeven
        }
    }

    else
    {
        echo 'Er zijn geen items gevonden.';
    }
}

else
{
    echo 'Er is een fout opgetreden met de database.';
}



      
?>

zo maar dan krijg ik nog steeds Er is een fout opgetreden met de database.
 
Albert de Wit

Albert de Wit

21/05/2012 16:54:06
Quote Anchor link
misschien is het handiger als je tutorials van PHP gaat volgen in plaats van lappen code te kopieeren en plakken. Daar leer je immers niks van.

Aanrader ->http://www.youtube.com/phpacademy

Heel duidelijk te volgen en goede uitleg. Suc6!
 
Erwin H

Erwin H

21/05/2012 17:23:37
Quote Anchor link
Erwin H op 21/05/2012 16:42:43:
from, to en read kan je niet als kolomnamen gebruiken.
Ik zie nog steeds read staan in het SELECT statement.
[/quote]
 
Obelix Idefix

Obelix Idefix

21/05/2012 18:53:39
Quote Anchor link
Zie ook nog een backtic staan. En gaat [] goed in een tabelnaam?

En kies voor echte foutafhandeling. Met een melding 'er is iets fout gegaan' kun je niet zo heel veel. Je wilt, neem ik aan, weten wat er fout is gegaan.
 



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.