Data presenteren van nieuwste naar oud met loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Java developer met ondernemend karakter

Vacature Omschrijving Je komt te werken in een jong en creatief team waarin je écht onderdeel bent van de ontwikkelingen binnen de organisatie. Korte lijnen, weinig bureaucratie en een informele werksfeer. Iemand met een ondernemend karakter zal zich snel thuis voelen. Daarnaast bieden we een marktconform salaris, een gezamenlijke lunch én een 2-wekelijkse stoelmassage. Functieomschrijving Je ontwikkelt mee aan een uniek software platform vol componenten waarmee consultants (en klanten) zowel SaaS- als Enterprise oplossingen creëren op het gebied van ‘Kwaliteit & Veiligheid’, ‘Privacy & Informatiebeveiliging’ en ‘Governance, Risk & Compliance’. Vanuit een overtuigende passie voor het digitaal transformeren van werkprocessen

Bekijk vacature »

PHP Developers gezocht die van complexe online vra

Vacature Omschrijving Een grote klant is opzoek naar enthousiaste PHP developers (junior/medior/senior). De organisatie waar jij komt te werken ontwikkelt en bouwt succesvolle oplossingen voor complexe online vraagstukken zoals performance, usability en conversion. Daarnaast zorgen zij voor externe systemen ingericht voor productbeheer, point-of-sales en voorraadbeheer koppelt de organisatie probleemloos aan op eigen Magento gebaseerde webshops. Het is een informele organisatie waar de communicatielijnen kort zijn. Functieomschrijving Met drupal 8 of ShopWare realiseert de organisatie prachtige frond-ends op dynamische data uit allerlei systemen. Je houdt je in deze organisatie bezig met het ontwerpen, ontwikkelen en beheren van functionaliteiten van de applicaties

Bekijk vacature »

Shawnty Blabla

Shawnty Blabla

14/10/2015 16:53:21
Quote Anchor link
Ik heb net mijn aller eerste PHP geprogrammeerd en het doet het volgende;

1. In een HTML form voer je data in (index.php)
2. In insert.php wordt deze data naar mijn mysql database geschreven
3. in insert.php (en ook nog in een volgende pagina) worden alle rows uitgelezen met een while loop en ge-echo' ed.

Wat hij automatisch doet is bovenaan de pagina de oudste entry en elke keer als er een nieuwe entry komt deze onderaan plakken (logisch)
Alleen wil ik heel graag de nieuwste entry bovenaan. Ik kom er werkelijk waar niet uit. Code hieronder.

Any help is appreciated!

Index.php

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>OPC Dev new entry</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<p>
<form action="insert.php" method="post">
<p> <input type="text"  name="date" value="<?php echo date("d-m-Y");?>" /><br><br>

<input type="text"  name="time" value="<?php echo date("H:i");?>" /><br><br>

Message: <input type="text" name="msg" width="700" height="700" id="txtbox"/><br><br>
<input type="submit" />
</p>
</form>
</p>

<body>
</body>
</html>




Insert.php

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Feedback inserting new entry</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<p>
<?php
$con
= mysql_connect("xxxxxxx","xxxxxxx","xxxxxxxxxx");

$dbhost = "xxxxxx";
$dbuser =  "xxxxxx";
$dbpass = "xxxxxx";

if (!$con)
  {

  die('Could not connect: ' . mysql_error());
  }


mysql_select_db("xxxxxxxxx", $con);
 
$sql="INSERT INTO opcdev (date, time, msg)
VALUES
('$_POST[date]','$_POST[time]','$_POST[msg]')"
;
 
if (!mysql_query($sql,$con))
  {

  die('Error: ' . mysql_error());
  }

echo "One update added<br><br>";


mysql_close();

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
  
   if(! $conn )
   {

      die('Could not connect: ' . mysql_error());
   }

  

  
      $query="SELECT * FROM opcdev"; //get all data from database
    $result=mysql_query($query); //store them in a variable
    $num=mysql_numrows($result); //count how many rows (=entry's) are in your database
    
    mysql_close();

    $i=0;
    
        while ($i < $num) {
            
            $date=mysql_result($result,$i,"date");
            $time=mysql_result($result,$i,"time");
            $msg=mysql_result($result,$i,"msg");

            echo "    Update added on <b> $date </b> at <b> $time </b> <BR>
                    <br>
                    $msg<br><br>
                    --------------------------------------------------------------<br><br>"
;

        $i++;
    }


?>


<br />
<br />
<a href="http://www.santivandentoorn.com/opcdev/opcdev.php">zie hier</a>
</p>
</body>
</html>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 14/10/2015 17:26:36 door - Ariën -
 
PHP hulp

PHP hulp

21/09/2019 22:17:21
 
Ben van Velzen

Ben van Velzen

14/10/2015 17:01:40
Quote Anchor link
Welke tutorial zit je te volgen? Dit is in elkaar gezet met praktisch alles dat je fout kan doen aan een script.
Geen escaping, gebruik van mysql_ functies, willekeurig mengen van HTML en PHP en ga zo maar door.
Het antwoord op je vraag is eenvoudig genoeg: pas de query op regel 37 aan zodat deze sorteert op datum. Al heb ik niet het vermoeden dat het datumveld daadwerkelijk DATETIME is.
 
Ivo P

Ivo P

14/10/2015 17:13:44
Quote Anchor link
open 1x per script de verbinding met je database. Niet steeds sluiten en weer een dure verbindingsactie uitvoeren omdat je toch verder wilt.

Datum en tijd laat je weg uit je form.

Haal ook die kolommen uit je tabel en zet daarvoor in de plaats 1 kolom van het type DATETIME.

Die vul je met NOW() is je query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
  $sql
= "INSERT INTO opcdev (datumtijd, msg)
          VALUES
          (NOW(),'"
. mysql_real_escape_string($_POST[msg])."')";
?>


Daarna kun je in de select-query sorteren op die datumtijd.

SELECT * FROM opcdev ORDER BY datumtijd DESC

(of ASC als je andersom wilt sorteren)

PS:

mysql_numrows() is zo oud dat dat niet eens meer op php.net te vinden is (zonder de 2e underscore.
Daarnaast is het nu minstens mysqli om mee te werken.
Deze tutorial is waarschijnlijk een jaar of 10 oud...
 
Bart V B

Bart V B

14/10/2015 17:20:17
Quote Anchor link
Er zijn nog veel dingen te verbeteren, maar dat is even voor nu niet zo van belang denk ik.
Maak eens in de database een veld aan met de naam: datum en deze word DATETIME.

In je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$sql
="INSERT INTO
              opcdev
             (msg,
              datum
              )
              VALUES('"
.mysql_real_escape_string($_POST['msg']."'),
                     NOW())"
;
?>

Bij het uitlezen:
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
 $query
="SELECT msg,
                date_format(datum, '%d-%m-%Y %H:%i:%s') AS datum_NL
                FROM opcdev ORDER BY datum DESC"
; //get all data from database


$result = mysql_query($query);

while($row = mysql_fetch_assoc($result))
{


   echo '           Update added on <b>'.$row['datum_NL'].'</b><br>
                    <br>
                    '
.$row['msg'].'<br><br>
                    --------------------------------------------------------------<br><br>'
;

}


?>

EDIT Ivo was me voor.. Dahm, moet m'n tiksnelheid eens onder de loep gaan nemen. :s
Gewijzigd op 14/10/2015 21:16:33 door Bart V B
 

15/10/2015 09:30:41
Quote Anchor link
Niemand die hem/hara er even op wijst dat mysql eruit is en mysqli gebruikt moet worden?
En als dan toch mysqli gebruikt word er beter meteen de OOP benadering gebruikt kan worden.

Dan krijgen ze ook de pauper procudurele shit niet mee tijdens het leer proces.
 
Shawnty Blabla

Shawnty Blabla

15/10/2015 09:37:19
Quote Anchor link
Hallo!

Bedankt voor alle reacties. Het was geen tutorial die ik volgde, ik had iets bedacht wat ik wilde maken en ben gewoon begonnen. Mysql ken ik van de tutorials die ik op codeacademy heb gevolgd. PHP ken ik vrijwel niet, maar de logica kwam mij enigszins bekend voor van Java.

Ik heb de kolum datetime gemaakt en voeg de data daarin via NOW(). Ik heb gezorgd dat de connectie met de database maar 1x per script wordt aangehaald en gesloten en het is zelfs gelukt om de data te sorteren op aflopende datum :).

Bedankt voor al jullie reacties, ik ga weer hard aan de slag om te zorgen dat als ik weer iets post het er beter uitziet !
 
Joni Fleischer
Moderator

Joni Fleischer

15/10/2015 12:00:42
Quote Anchor link
Tip:

http://www.phptuts.nl/view/45/
http://www.phptuts.nl/view/41/

mysqli of PDO.

Prepared statements zijn een stuk veiliger.
 



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.