Ophalen gegevens database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcus Tullius

Marcus Tullius

27/07/2010 11:17:59
Quote Anchor link
Ik wil graag dat op een bepaalde pagina de drie laatst toegevoegde rijen weergegeven worden van mijn database. Daarnaast wil ik ook dat de laatst toegevoegde rij bovenaan wordt weergegeven. Dit is het stuk script dat me het belangrijkste lijkt voor deze functie:

$sql = "SELECT * FROM ... LIMIT 3";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {

Het probleem is echter dat hij wel drie rijen weergeeft, maar na 4 posts de volgorde in de war wordt geschopt. Weet iemand hoe dit de voorkomen is, zodat de rijen in de oorspronkelijke volgorde blijven?

Alvast bedankt.
Gewijzigd op 27/07/2010 11:33:24 door Marcus Tullius
 
PHP hulp

PHP hulp

20/04/2024 01:38:08
 
John D

John D

27/07/2010 11:35:48
Quote Anchor link
een ORDER BY meegeven in de SELECT
 
Marcus Tullius

Marcus Tullius

27/07/2010 11:39:28
Quote Anchor link
Ja, zoiets dacht ik al, maar wat moet het dan zijn? ORDER BY...?
 
John D

John D

27/07/2010 11:41:23
Quote Anchor link
ORDER BY ID DESC LIMIT 3
wanneer je een oplopend id in je tabel hebt.
anders op een datum wellicht ?
 
- SanThe -

- SanThe -

27/07/2010 11:45:58
Quote Anchor link
ORDER BY ....
 
Marcus Tullius

Marcus Tullius

27/07/2010 11:48:14
Quote Anchor link
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /status.php on line 36
Gewijzigd op 27/07/2010 15:27:45 door Marcus Tullius
 
Marcus Tullius

Marcus Tullius

27/07/2010 11:48:30
Quote Anchor link
Marcus Tullius op 27/07/2010 11:48:14:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in status.php on line 36
 
Bart V B

Bart V B

27/07/2010 11:50:29
Quote Anchor link
Laat eens je hele query code zien, want dit is gewoon gissen tot we een ons wegen natuurlijk ;)
 
- SanThe -

- SanThe -

27/07/2010 11:50:56
Quote Anchor link
Dan zal de query mislukt zijn.
Bouw foutafhandeling in en echo de query eens.
 
Marcus Tullius

Marcus Tullius

27/07/2010 15:40:28
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
16
17
18
19
<?php
            if ($_POST["submit"] && $_POST["title"]  && $_POST["posts"]  && $_POST["name"]) {
                
            $db = mysql_connect("localhost", "naam", "wachtwoord")
            or die("Could not connect to the database: " . mysql_error());
            mysql_select_db("database", $db);
            $sql = "INSERT INTO bugs (title,post,date,name) VALUES (
            '"
.addslashes($_POST['title'])."',
            '"
.addslashes($_POST['posts'])."',
            '"
.addslashes(date('F d, Y'))."',
            '"
.addslashes($_POST['name'])."')";
            if (!mysql_query($sql)) {
                echo "Fail.";
            }
else {
                echo "Success!";
            }

            mysql_close($db);
            
            }
 
Joakim Broden

Joakim Broden

27/07/2010 15:43:46
Quote Anchor link
Probeer regel 10 dit eens:

'".date('Y'-'d'-'f')."',
 

27/07/2010 15:45:34
Quote Anchor link
Marcus Tullius op 27/07/2010 15:40:28:
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
<?php
            if ($_POST["submit"] && $_POST["title"]  && $_POST["posts"]  && $_POST["name"]) {
                
            $db = mysql_connect("localhost", "naam", "wachtwoord")
            or die("Could not connect to the database: " . mysql_error());
            mysql_select_db("database", $db);
            $sql = "INSERT INTO bugs (title,post,date,name) VALUES (
            '"
.addslashes($_POST['title'])."',
            '"
.addslashes($_POST['posts'])."',
            '"
.addslashes(date('F d, Y'))."',
            '"
.addslashes($_POST['name'])."')";
            if (!mysql_query($sql)) {
                echo "Fail.";
            }
else {
                echo "Success!";
            }

            mysql_close($db);
            
            }

?>


Controleren of een form gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
die is geen nette afhandeling. Je kunt toch nog steeds een normale pagina laten zien?
Bovendien wil je alleen mysql_error voor jezelf gebruiken, aangezien hackers daar misbruik van kunnen maken.
Gebruik nooit of te nimmer addslashes!!!
Addslashes verneuken je data, gebruik gewoon mysql_real_escape_string.
Zet het type van het veld date in de database op DATE, dan kan je gewoon NOW() gebruiken, en niet een of ander eigen verzonnen standaard.
Gewijzigd op 27/07/2010 15:47:51 door
 
Marcus Tullius

Marcus Tullius

27/07/2010 15:55:40
Quote Anchor link
Oke, bedankt.
Ik wilde trouwens deze laten zien, daar ging het om:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
                            $db
= mysql_connect("localhost", "naam", "wachtwoord")
                                or die("Could not connect to the database: " . mysql_error());
                            mysql_select_db("database", $db);
                            $sql = "SELECT * FROM bugs ORDER BY ID DESC LIMIT 3";
                            $result = mysql_query($sql);
                                while ($row = mysql_fetch_array($result)) {
                                echo "<p class=\"subtitle\">".$row["title"]."</p>".$row['post]."<br/><div id=\"postbottom\">".$row['date']." by ".$row['name']."</div><br /><br />";
                            }

                    ?>
 

27/07/2010 15:57:09
Quote Anchor link
Selecteer ook wat je wilt hebben. Gebruik niet *.
 
Marcus Tullius

Marcus Tullius

27/07/2010 16:20:33
Quote Anchor link
Ik wil gewoon alles hebben van de tabel. Daarom de *.
Maar is het ook gewoon mogelijk om de posts in de juiste volgorde te krijgen aan de hand van hun ID, en niet de date?
Gewijzigd op 27/07/2010 16:23:31 door Marcus Tullius
 

28/07/2010 11:21:43
Quote Anchor link
Marcus Tullius op 27/07/2010 16:20:33:
Ik wil gewoon alles hebben van de tabel. Daarom de *.
Maar is het ook gewoon mogelijk om de posts in de juiste volgorde te krijgen aan de hand van hun ID, en niet de date?


Dan selecteer je nog wat je wilt hebben. Want misschien weet je later niet meer wa je allemaal wilt hebben, dus kan je duidelijk zien wat je wilt hebben. SQL documenteert zichzelf. Verder is het dus ook nog zo dat doordat in principe * een wildcard is, de database ook gewoon velden mag negeren.

Nee, je kunt niet aan een id de volgorde van reacties vinden.
 



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.