Toon posts:

[PHP & MySQL] Probleem weergeven data

Pagina: 1
Acties:
  • 225 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben bezig met het basis-programmeren van een blog.


Maar ik zit uiteraard met een probleempje, waar ik maar niet uitkom:

mapstructuur:

root/index.php
root/verbinding.php
root/admin/index.php

Op de admin pagina heb ik een teksteditor met een submit-knop. Als daarop wordt geklikt worden de titel en de inhoud van het bericht, doorverzonden naar de root index.php, waar alles verwerkt wordt.
Dat ziet er als volgt uit:
PHP:
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
$check_empty = "SELECT COUNT(*) FROM mycms_content;";
$select_all = "SELECT * FROM mycms_content ORDER BY id DESC;";

//Controleren of de tabel leeg is of niet

include_once('verbinding.php');
        
$con = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
if (!$con) {
    die('Verbinding mislukt: ' . mysql_error());
}
mysql_select_db($_CONFIG["Database"], $con) or die("Kon de database niet openen: " . mysql_error());    

$check_result = mysql_query($check_empty) or die("Query mislukt: " . mysql_error());
    
    
if($check_result[0] < 1) {

   //Controleren of er een bericht is gemaakt, zoja toevoegen aan database en weergeven op pagina

    if((array_key_exists('title', $_POST)) && (array_key_exists('content', $_POST))) {
            
        $title = $_POST['title'];
        $title = strip_tags($title);
        $title = trim($title);
        $content = stripslashes($_POST['content']);
            
        $insert = "INSERT INTO mycms_content (title, content) VALUES ('$title', '$content');";
        
        include_once('verbinding.php');
            
        $con = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
        if (!$con) {
            die('Verbinding mislukt: ' . mysql_error());
        }
        mysql_select_db($_CONFIG["Database"], $con) or die("Kon de database niet openen: " . mysql_error());    

        mysql_query($insert) or die("Query mislukt: " . mysql_error());
        
        $get_all = mysql_query($select_all) or die("Query mislukt: " . mysql_error());
            
        while($row = mysql_fetch_array($get_all)) { 
            echo '<h4>'.$row['title'].'</h4>';
            echo $row['content'];
        }
        mysql_close($con);
    }
    else echo '<h4>Gelieve eerste een bericht toe te voegen.</h4>';
}
else {

   //Berichten weergeven

    include_once('verbinding.php');
            
    $con = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
    if (!$con) {
        die('Verbinding mislukt: ' . mysql_error());
    }
    mysql_select_db($_CONFIG["Database"], $con) or die("Kon de database niet openen: " . mysql_error());
                
    $get_all = mysql_query($select_all) or die("Query mislukt: " . mysql_error());
            
    while($row = mysql_fetch_array($get_all)) { 
        echo '<h4>'.$row['title'].'</h4>';
        echo $row['content'];
    }
}



Nu, het probleem is, als er zich al records in de tabel bevinden.
Als ik dan de root pagina open, verschijnt er de melding "Gelieve eerst een bericht toe te voegen."
Normaal zouden de bestaande berichten moeten weergegeven worden...?

Ik vind mijn code er logisch uitzien, maar er zal toch wel een logische fout inzitten :9 En die vind ik dus niet :?

Er zal wel iets mis zijn met de verschillende if-statements, maar ik heb dus al vanalles geprobeerd, zonder succes.

Graag tips! O+

Bedankt,
Xaboteur

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Tips? Debuggen! :)

Wat zit er in je $check_result-variabele? Waarom komt 'ie dan in de "else"?

Je hoeft verder ook niet iedere keer te verbinden met je database, en lees eens wat over SQL injection.

[ Voor 6% gewijzigd door CodeCaster op 16-01-2011 15:05 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:18

Janoz

Moderator Devschuur®

!litemod

Wat verwacht je dat er in $check_result zit en wat blijkt er na het debuggen in te zitten?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik alleen de $check_result weergeef, staat er "Resource id #5" :s

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Verwijderd schreef op zondag 16 januari 2011 @ 15:09:
Als ik alleen de $check_result weergeef, staat er "Resource id #5" :s
Ja, heel vreemd.
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
Misschien moet je daar nog iets mee doen?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

Oftewel: gewoon even de MySQL handleiding erbij pakken of 1 van de vele MySQL tutorials. mysql_query levert een resultset op, waar je met bijv mysql_fetch_assoc doorheen zult moet lopen. Dit staat echt uitgelegd in *elke* PHP/MySQL tutorial en staat ook duidelijk uitgelegd in de handleiding (die CodeCaster linkt). Volgende keer aub zelf even iets meer tijd en moeite erin steken en in elk geval even de handleiding van de door jou gebruikte functies te bekijken zodat je ook echt begrijpt wat te doen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.