[SOLVED] intval ID posten in database vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Mr.Ark

Mr.Ark

18/01/2010 01:09:00
Quote Anchor link
Doe eens single quotes om die $_GET in je query, maak er maar dit van: '".intval($_GET['ID'])."'
 
PHP hulp

PHP hulp

29/04/2024 17:50:56
 
Joren de Wit

Joren de Wit

18/01/2010 09:44:00
Quote Anchor link
Wat gaat er precies fout? Als je query mislukt, geef dan ook de foutmelding eens weer (mysql_error())?
 
Stef van de Ven

Stef van de Ven

18/01/2010 12:06:00
Quote Anchor link
Mr.Ark schreef op 18.01.2010 01:09:
Doe eens single quotes om die $_GET in je query, maak er maar dit van: '".intval($_GET['ID'])."'


Dit heb ik gedaan, maar nog steeds kan ik geen 2de bericht in mijn database posten :S

Blanche schreef op 18.01.2010 09:44:
Wat gaat er precies fout? Als je query mislukt, geef dan ook de foutmelding eens weer (mysql_error())?


De foutmelding is dat hij zegt:
Er is een fout opgetreden met het aanmaken van jouw bericht.

Deze tekst is een gevolg van de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
/* Resultaat van de query. */
$cResultaat = mysql_query($cQuery);

/* Kijken of de query is gelukt. */
if(!$cResultaat)
{
/* Fout opgetreden met invoeren van gegevens. */
echo '<p>Er is een fout opgetreden met het aanmaken van jouw bericht.</p>';


Dus de query is niet gelukt, maar waarom lukt het wel bij de eerste reactie en niet bij een tweede.?!
 
Joren de Wit

Joren de Wit

18/01/2010 12:21:00
Quote Anchor link
Stef schreef op 18.01.2010 12:06:
De foutmelding is dat hij zegt:
Er is een fout opgetreden met het aanmaken van jouw bericht.
Dit zegt helemaal niets over wat er nu precies fout is gegaan. Zoals ik in mijn vorige post al zei, gebruik mysql_error() om de foutmelding van de database te achterhalen. Dan ben je waarschijnlijk al een heel stuk wijzer...
 
Stef van de Ven

Stef van de Ven

18/01/2010 12:41:00
Quote Anchor link
Het is niet dat ik PHP als taal ken, ik ben alleen maar aan het beginnen.
Ik heb even wat artikelen over mysql_error() gelezen en ik heb ook al wat uit zitten vogelen, alleen werkt alles wat ik probeer gewoon niet.

Ik weet niet hoe PHP zich precies gedraagt in de code die ik heb.
Ik ga er vanuit dat ik in het onderstaande stukje stukje de error moet zetten,
alleen weet ik niet hoe ik dat zou moeten doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
/* Kijken of de query is gelukt. */
if(!$cResultaat)
{

echo '<p>Er is een fout opgetreden met het aanmaken van jouw bericht.</p>';
?>
 
Joren de Wit

Joren de Wit

18/01/2010 12:43:00
Quote Anchor link
Als je niet weet hoe functies werken, dan kennen we daar de mooie handleiding van php.net voor. De link voor mysql_error() is eerder al gegeven, dus daar kun je kijken.

In jouw geval zou je zoiets kunnen doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(!$cResultaat) {
  trigger_error(mysql_error());
}

?>

Zie ook: SQL beginnershandleiding.
 
Mr.Ark

Mr.Ark

18/01/2010 13:22:00
Quote Anchor link
Probleem zou vast en zeker zijn dat TS geen auto increment heeft aanstaan op z'n ID veld in de database. heb ik gelijk Topic starter?
 
Joren de Wit

Joren de Wit

18/01/2010 13:38:00
Quote Anchor link
Dat is ook mijn vermoeden, maar zonder daadwerkelijke foutmelding zal de TS dat nooit zeker weten (tenzij hij uiteraard een auto_increment op die kolom zet).
 
Stef van de Ven

Stef van de Ven

18/01/2010 14:31:00
Quote Anchor link
Er zit een auto increment op de ID van de reacties in de database.
Ik ga dat van Blanche proberen zodra ik weer thuis ben en bij mijn bestanden kan... =]
 
Milo

Milo

18/01/2010 16:28:00
Quote Anchor link
Als je nu eens rustig begint met de blog dus neit meteen het bericht enzo echoen maar alleen de link om te testen

Doe dan zoiets:

Edit:
Had met mysqli gemaakt is nu gewoon mysql voor je ;)
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
<?php
// Database connectie maken
include('config.php');

// Alles uit de database halen
$sql = mysql_query('SELECT
                        id,
                        titel,
                        auteur,
                        datum,
                        preview,
                        bericht
                    FROM
                        blog
                    ORDER BY
                        id'
);
                                
// Als de query is gelukt
if($sql)
{

    // Als er blogs zijn
    if(mysql_num_rows($sql) > 0)
    {

        // Alle blogs loopen
        while($rec = mysql_fetch_assoc($sql))
        {

            // Link naar de reacties
            echo '<a href="reacties.php?id='.$rec['id'].'">Lees blog helemaal plus zijn reacties</a>';
        }
    }

    // Anders
    else
    {
        // Geen blogs
        echo 'Er zijn momenteel nog geen blogs.';
    }
}

// Anders
else
{
    // MySql error
    echo 'Er is een fout opgetreden met de query: <br />';
    echo mysql_error();
}

?>


En dan op reacties.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
76
77
78
79
80
81
82
83
84
85
<?php
// Database connectie maken
include('config.php');

/*
---- De blog
*/

// Alles uit de database halen

$sql = mysql_query('SELECT
                        id,
                        titel,
                        auteur,
                        datum,
                        bericht
                    FROM
                        blog
                    WHERE
                        id = "'
.intval($_GET['id']).'"
                    '
);
                                
// Als de query is gelukt
if($sql)
{

    // Als er blogs zijn
    if(mysql_num_rows($sql) > 0)
    {

        // Alle blogs loopen
        while($rec = mysql_fetch_assoc($sql))
        {

            // Link naar de reacties
            echo 'Hier komt die blog <br />';
        }
    }

    else
    {
        echo 'Er zijn momenteel nog geen blogs.';
    }
}

else
{
    echo 'Er is een fout opgetreden met de blog query: <br />';
    echo mysql_error();
}


/*
---- De reacties
*/

// Alles uit de database halen

$sql = mysql_query('SELECT
                        id,
                        blog_id,
                        auteur,
                        datum,
                        bericht
                    FROM
                        reacties
                    WHERE
                        blog_id = "'
.intval($_GET['id']).'"
                    '
);
                                
// Als de query is gelukt
if($sql)
{

    // Als er blogs zijn
    if(mysql_num_rows($sql) > 0)
    {

        // Alle blogs loopen
        while($rec = mysql_fetch_assoc($sql))
        {

            echo 'Zorg dan dat hier de reacties komen.';
        }
    }

    else
    {
        echo 'Er zijn momenteel nog geen reacties op deze blog.';
    }
}

else
{
    echo 'Er is een fout opgetreden met de reactie query: <br />';
    echo mysql_error();
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Milo
 
Stef van de Ven

Stef van de Ven

18/01/2010 17:50:00
Quote Anchor link
Eindelijk heb ik de error kunnen vinden:

Notice: Duplicate entry '15' for key 2 in /home/a2158819/public_html/blog.php on line 269

Dus wat ik dacht blijkt juist te zijn, hij wil geen 2 reacties posten met dezelfde Blogid.

Wss zit de fout dan in mijn database?!
Ik ga even kijken wat ik er aan zou kunnen veranderen...

als jullie tips hebben dan hoor ik het graag
 
Joren de Wit

Joren de Wit

18/01/2010 17:54:00
Quote Anchor link
Dan heb je blijkbaar een UNIQUE key op de kolom blogid staan. Dat hoort natuurlijk niet in die tabel...
 
Yearupie Achternaamloos

Yearupie Achternaamloos

18/01/2010 17:55:00
Quote Anchor link
Verkeerd, zie hierboven.
Gewijzigd op 01/01/1970 01:00:00 door Yearupie Achternaamloos
 
Stef van de Ven

Stef van de Ven

18/01/2010 17:58:00
Quote Anchor link
Probleem opgelost!

Blogid stond in mijn database bij de Indexes als Primary...
Zorgde voor dat ik geen duplicaten kon maken van Blog id

Heel erg bedankt allemaal!
 

Pagina: « vorige 1 2



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.