Bericht toevoegen in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Niels van Dijk

Niels van Dijk

19/05/2009 23:42:00
Quote Anchor link
Hee,

iik had een vraagje? kan iemand mij uitleggen hoe ik een nieuws bericht toevoeg in mijn database

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
<?
include'config.php';

    //-- linkje terug naar het nieuws overzicht
    
    //-- haal het specifieke nieuwsbericht uit de database
    //-- $HTTP_GET_VARS[id] is het id adres die wordt meegegeven in de link.

    $sql = "SELECT id,titel,bericht,datum FROM nieuws WHERE id = $HTTP_GET_VARS[id]";
    //-- via de functie mysql_query() kun je de SQL code
    //-- die in $sql staat uitvoeren.

    $res = mysql_query($sql);
    //-- via de functie mysql_fetch_array() zet je
    //-- alle velden die je zojusit geselecteerd hebt
    //-- van het specifieke nieuwsbericht in een array.
    //-- je kunt ze dus aanroepen via $row[kolom_naam].

    $row = mysql_fetch_array($res);
    
    //-- zet enters om in <br>'s voor een juiste weergave
    $row['bericht'] = nl2br(htmlentities($row['bericht']));
    
    echo "<b>" . $row['titel'] . "</b> | " . $row['datum'] . "<p>";
    
    echo $row['bericht'];
    
    //-- dan nu de reacties
    echo "<br><br>";
    echo "<b>Reacties:<br></b>";
    echo "<br>";
    
    //-- haal alle reacties waarvan tid $HTTP_GET_VARS[id] is
    //-- (deze variabele bestaat nog steeds natuurlijk want die
    //-- is dus meegegeven in de link van overzicht.php

    $sql = "SELECT naam,bericht FROM reacties WHERE tid = " . $_GET['id'];
    //-- je weet wat er nu gebeurd met deze functie
    $res = mysql_query($sql);
    
    //-- je weet nu wat er gechecked wordt
    if (mysql_num_rows($res) >= 1)
    {

        //-- je weet ook wat hier gebeurt
        while ($row = mysql_fetch_array($res))
        {

            echo "<b>" . $row['naam'] . "</b><br>";
            
            //-- sommige mensen vinden het leuk om
            //-- bijvoorbeeld via reacties je layout
            //-- te verknoeien. Dit kun je voorkomen
            //-- met de functie htmlentities(). Deze
            //-- zet namelijk alle HTML codes om in
            //-- karakter entities. Dit houdt in dat
            //-- van een < %lt; wordt gemaakt. Nu is
            //-- het dus onmogelijk om de pagina te
            //-- verknoeien via HTML tags..

            $row['bericht'] = htmlentities($row['bericht']);
            
            //-- deze moet na de htmlentities() aange-
            //-- roepen worden. Dit omdat anders deze
            //-- functie weinig zin heeft. Hij zet dan
            //-- immers de <br>'s in <br> om :)

            $row['bericht'] = nl2br($row['bericht']);
            
            echo $row['bericht'] . "<p>";
        }
    }

    else
    {
        //-- geen reacties
        echo "Plaats hier een reactie !";
    }

    
    //-- linkje terug naar het nieuws overzicht
    echo "<p><a href=\"archief.php\">nieuws overzicht</a></p>";
?>


dus niet een reactie maar gewoon een heel nieuw bericht ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
CREATE TABLE nieuws (
  id int(11) NOT NULL auto_increment,
  titel varchar(50) NOT NULL default '',
  bericht text NOT NULL,
  datum varchar(16) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Gewijzigd op 01/01/1970 01:00:00 door Niels van Dijk
 
PHP hulp

PHP hulp

20/04/2024 10:29:31
 
Mr.Ark

Mr.Ark

20/05/2009 00:00: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
16
17
18
<?PHP
$Query
=
"
    INSERT INTO
        jouwtabel
        (
             veld1,
            veld2,
            veld3
        )
    VALUES
        (
             '"
.mysql_real_escape_string($_POST['veld1vanform'])."',
            '"
.mysql_real_escape_string($_POST['veld2vanform'])."',
            '"
.mysql_real_escape_string($_POST['veld3vanform'])."'
        )
"
;
?>


Let op dat je nog wel alle controles uitvoert of een veld is ingevuld.
Na de query moet je een fouten afhandeling maken.
Volgens mij wijst de code zich van zelf wel.
 
Niels van Dijk

Niels van Dijk

20/05/2009 00:03:00
Quote Anchor link
ark schreef op 20.05.2009 00:00:
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
<?PHP
$Query
=
"
    INSERT INTO
        jouwtabel
        (
             veld1,
            veld2,
            veld3
        )
    VALUES
        (
             '"
.mysql_real_escape_string($_POST['veld1vanform'])."',
            '"
.mysql_real_escape_string($_POST['veld2vanform'])."',
            '"
.mysql_real_escape_string($_POST['veld3vanform'])."'
        )
"
;
?>


Let op dat je nog wel alle controles uitvoert of een veld is ingevuld.
Na de query moet je een fouten afhandeling maken.
Volgens mij wijst de code zich van zelf wel.



nou nee snap het niet
 
Mr.Ark

Mr.Ark

20/05/2009 00:08:00
Quote Anchor link
Quote:
nou nee snap het niet


Dan zou je op het minst kunnen vertellen wat je er niet van snapt.

We gaan natuurlijk niet alles voor je maken want dan snap je er nog niets van.

Heb je al eens gezocht hier in het forum?, Of in de script library? Zijn tal van voorbeelden genoeg.
 
Niels van Dijk

Niels van Dijk

20/05/2009 00: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
16
17
18
19
20
21
<?PHP
$Query
=
"
    INSERT INTO
        nieuws
        (
            id,
            titel,
            bericht,
            datum
        )
    VALUES
        (
            '"
.mysql_real_escape_string($_POST['id'])."',
            '"
.mysql_real_escape_string($_POST['titel'])."',
            '"
.mysql_real_escape_string($_POST['bericht'])."'
            '"
.mysql_real_escape_string($_POST['datum'])."'

        )
"
;
?>


dit heb ik nu maar nu hoe moet ik dat in een form maken ?
 
Mr.Ark

Mr.Ark

20/05/2009 01:44:00
Quote Anchor link
Quote:
dit heb ik nu maar nu hoe moet ik dat in een form maken ?


Heb even een opzetje voor je gemaakt.
Met Request_method post kijk je of de server een post ontvangt.

=> id int(11) NOT NULL auto_increment,

Je hoeft niet het id op te slaan in de database want je hebt het veld auto_increment staan, Dus hij voegt zelf het id toe.

Lees goed de oranje text om de code te begrijpen.
Je mag hem nu zelf gaan uitbreiden.

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
<?PHP
/* Errors weergeven. */
error_reporting(E_ALL);

/* Kijken of er gepost wordt. */
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    /* Kijken of er een titel is ingevuld. */
    if(isset($_POST['titel']) && !empty($_POST['titel']))
    {

        /* Er is een titel ingevuld, We gaan het nu in de database plaatsen. */
        /* mysql_real_escape_string gebruiken om sql injection te voorkomen. */

        $Query =
        "
            INSERT INTO
                nieuws
                (
                     titel
                )
            VALUES
                (
                     '"
.mysql_real_escape_string($_POST['titel'])."'
                )
        "
;
        
        /* Resultaat van de query. */
        $Resultaat = mysql_query($Query);
        
        /* Kijken of er een result is. */
        if(!$Resultaat)
        {

            /* Er is een fout opgetreden met de query. */
            echo 'Helaas konden wij de gegevens niet in de database plaatsen.';
        }

        else
        {
            /* Succesvol in de database geplaatst. */
            echo 'Het is succesvol in de database geplaats.';
        }
    }

    else
    {
        /* Er is geen naam ingevuld. */
        echo 'Vul A.U.B een naam in.';
    }
}

?>

<!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>Untitled Document</title>
</head>

<body>
<h3>Database Toevoegen</h3>
<form id="form1" name="form1" method="post" action="">
  Titel:
  <input type="text" name="titel" id="titel" />
  <input type="submit" name="submit" id="submit" value="Submit" />
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Niels van Dijk

Niels van Dijk

20/05/2009 07:16:00
Quote Anchor link
Fatal error: Call to undefined function: mysql_real_escape_string() in c:\phpdev\www\vandijk\addnieuws.php on line 22
 
Hipska BE

Hipska BE

20/05/2009 09:56:00
Quote Anchor link
Jah... moet je wel database verbinding voor hebben he..
 
Niels van Dijk

Niels van Dijk

20/05/2009 12:23:00
Quote Anchor link
heb ik ook ik heb hem ge include of moet dat niet ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

include'config.php';

?>
 
Mr.Ark

Mr.Ark

20/05/2009 12:29:00
Quote Anchor link
Hoe ziet je config.php eruit?
 
Niels van Dijk

Niels van Dijk

20/05/2009 12:31:00
Quote Anchor link
pff ben nu niet thuis duss kan vanmiddag pas ff voor jullie kijken


*EDIT*

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
ob_start();

//Je gegevens

$mysql_con = "Er is een fout tijdens de connectie opgetreden.";  //Fout tijdens de connectie
$mysql_dat = "De verbinding met de database ($data) is mislukt.";  //Fout bij selecteren van database
$sitenaam = "";  //Je sitenaam
$titel = "Nieuws";  //Titel (hetgene tussen <title> en </title>
$adminnaam = "";  //Je username om in de admin te komen
$password = "";  //Je wachtwoord om in de admin te komen

//Connectie gegevens


$host = ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam

//De connectie


mysql_connect($host, $user, $pass) or die($mysql_con);
mysql_select_db($data) or die($mysql_dat);
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels van Dijk
 
Niels van Dijk

Niels van Dijk

20/05/2009 17:23:00
Quote Anchor link
ik heb het toegevoegd ;d
 
Jeroen G

Jeroen G

20/05/2009 18:05:00
Quote Anchor link
Je moet natuurlijk wel je databasegegevens invoeren hier

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$host
= ""; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$data = "blog-db"; // je database-naam
?>
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
 
Niels van Dijk

Niels van Dijk

20/05/2009 18:18:00
Quote Anchor link
zit er niet in het is op de localhost
 
Jeroen G

Jeroen G

20/05/2009 18:40:00
Quote Anchor link
dan voer je daar localhost in :S

en vergeet het username en password ook niet.. anders wordt dit weer de volgende vraag.
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
 
Niels van Dijk

Niels van Dijk

20/05/2009 18:59: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
16
<?php
$host
= "localhost"; // je hostname, meestal localhost
$user = ""; // je username
$pass = ""; // je wachtwoord
$dbas = "blog-db"; // je database-naam

// connect naar database

if(mysql_connect($host, $user, $pass)) {
  // selecteer database
  mysql_select_db($dbas) or die(mysql_error());
}
else {
  // connecten naar database is mislukt
  echo "Geen connectie met de database.";
  exit;
}

?>


ik heb geen ww en geen user
maar hij geeft nog steeds de zelfde fout aan
 
Jeroen G

Jeroen G

20/05/2009 19:14:00
Quote Anchor link
Quote:
ik heb geen ww en geen user
Dat is naar mijn weten onmogelijk. Heb je wel toegang met phpadmin?

En welke php versie heb je geinstalleerd?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen G
 
Niels van Dijk

Niels van Dijk

20/05/2009 19:31:00
Quote Anchor link
je hoeft toch nooit een pass en user in te voeren als je op de localhost als het online moet moet dat wel
 
Mr.Ark

Mr.Ark

20/05/2009 21:10:00
Quote Anchor link
Volgens mij moet dat wel, WW is niet nodig maar een username wel, Maar het is natuurlijk wel handig als je een ww erop zet, Google maar eens daarop.
Kan zo zijn dat je username root is.
 
Niels van Dijk

Niels van Dijk

20/05/2009 21:42:00
Quote Anchor link
Fatal error: Call to undefined function: mysql_real_escape_string() in c:\phpdev\www\vandijk\beheer\add_news.php on line 24

hij geeft nog steeds deze fout aan ?
 
Hipska BE

Hipska BE

20/05/2009 21:48:00
Quote Anchor link
Dan klopt er nog iets niet hoor..

Welke versie van php gebruik jij eigenlijk?

Bij php5 raad ik aan te kijken naar MySQLi of PDO omdat die sneller en veiliger zijn. (Ja OOK als je offline werkt)
 

Pagina: 1 2 volgende »



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.