Database query failed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jos Vermassen

Jos Vermassen

10/01/2012 12:24:55
Quote Anchor link
Ik krijg steeds deze foutmelding: "Database query failed:" iemand enig idee hoe dit komt?

content.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php require_once("includes/functions.php"); ?>
<?php require_once("includes/header.php"); ?>
<?php
    if(isset($_GET['subj'])) {
        $sel_subj = $_GET['subj'];    
        $sel_page = "";
    }
elseif(isset($_GET['page'])) {
        $sel_subj = "";
        $sel_page = $_GET['page'];    
    }
else {
        $sel_subj = "";
        $sel_page = "";    
    }

    $sel_subject = get_subject_by_id($sel_subj);
?>

<?php include("includes/connection.php"); ?>
<table id="structure">
    <tr>
        <td id="navigation">&nbsp;
            <ul class="subjects">
        <?php
            $subject_set
= get_all_subjects();
            
            while($subject = mysql_fetch_array($subject_set)) {
                echo "<li";
                if ($subject["id"] == $sel_subj) { echo " class=\"selected\"";    }
                
                echo "><a href=\"content.php?subj=" . urlencode($subject["id"]) .
                    "\">{$subject["menu_name"]}</a></li>";
    
                $page_set = get_pages_for_subject($subject["id"]);
            
                echo "<ul class=\"pages\">";
                while($page = mysql_fetch_array($page_set)) {
                    echo "<li";
                    if ($page["id"] == $sel_page) { echo " class=\"selected\"";    }
                    echo "><a href=\"content.php?page=" .
                    urlencode($page["id"]) . "\">{$page["menu_name"]}</a></li>";
                }

                echo "</ul>";
            }

        ?>

            </ul>
        </td>
        <td id="page">
            <h2><?php echo $sel_subject['menu_name']; ?></h2>
            <br />
            <?php echo $sel_page; ?><br />
         </td>
    </tr>
</table>
<?php include("includes/footer.php"); ?>
[/CODE]
[b]functions.php[/b]

<?php
function confirm_query($result_set) {
    if(!$result_set) {
        die("Database query failed: " .mysql_error());
    }
}

function
get_all_subjects() {
    global $connection;
    $query = "SELECT *
             FROM subjects
             ORDER BY position ASC"
;
    $subject_set = mysql_query($query , $connection);
    confirm_query($subject_set);
    return $subject_set;    
}

function
get_pages_for_subject($subject_id) {
    global $connection;
    $query = "SELECT *
             FROM pages
             WHERE subject_id = {$subject_id}
             ORDER BY position ASC"
;
    $page_set = mysql_query($query, $connection);
    confirm_query($page_set);
    return $page_set;
}

function
get_subject_by_id($subject_id) {
    global $connection;
    $query = "SELECT * ";
             "FROM subject ";
             "WHERE id=" . $subject_id ." ";
             "LIMIT 1";
    $result_set = mysql_query($query, $connection);
    confirm_query($result_set);
    if($subject = mysql_fetch_array($result_set)) {
        return $subject;
    }
else {
        return NULL;    
    }
    
}


?>
 
PHP hulp

PHP hulp

24/11/2024 07:29:03
 
Marco PHPJunky

Marco PHPJunky

10/01/2012 12:45:22
Quote Anchor link
waarom staan { } er in je 2de query ?

en in je 3de query sluit je telkens af het moet een doorlopend stuk zijn...
want nu pakt hij alleen: SELECT * en de rest niet...
Gewijzigd op 10/01/2012 12:50:21 door Marco PHPJunky
 
Jaron T

Jaron T

10/01/2012 12:50:17
Quote Anchor link
Marco PHPJunkie op 10/01/2012 12:45:22:
waarom staan { } er in je 2de query ?

en in je 3de query sluit je telkens af het moet een doorlopend stuk zijn...


kan je vars binnen een string mee zetten, een alternatief voor quotes

ot; Wat is je mysql_error() die je krijgt?
edit; de oplossingis wss al gegeven, je maakt je 3e query niet af omdat je hem steeds sluit ';'
Gewijzigd op 10/01/2012 12:52:09 door Jaron T
 
Erwin H

Erwin H

10/01/2012 12:50:24
Quote Anchor link
Waar maak je de connectie met de database?
 
Jos Vermassen

Jos Vermassen

10/01/2012 12:53:14
Quote Anchor link
CONNECTION.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
<?php
require("constants.php");

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) {
    die("Database connection failed!" . mysql_error());
}


$db_select = mysql_select_db(DB_NAME, $connection);
if(!$db_select) {
    die("Database connection failed!" . mysql_error());
}
    
?>


Ik krijg geen error er komt niets achter "Database query failed:"

Toevoeging op 10/01/2012 12:55:32:

Jaron T op 10/01/2012 12:50:17:
Marco PHPJunkie op 10/01/2012 12:45:22:
waarom staan { } er in je 2de query ?

en in je 3de query sluit je telkens af het moet een doorlopend stuk zijn...


kan je vars binnen een string mee zetten, een alternatief voor quotes

ot; Wat is je mysql_error() die je krijgt?
edit; de oplossingis wss al gegeven, je maakt je 3e query niet af omdat je hem steeds sluit ';'


Ik heb het aangepast en nog steeds hetzelfde probleem:
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
<?php
function get_subject_by_id($subject_id) {
    global $connection;
    $query = "SELECT *
             FROM subject
             WHERE id="
. $subject_id . "  
             LIMIT 1"
;
    $result_set = mysql_query($query, $connection);
    confirm_query($result_set);
    if($subject = mysql_fetch_array($result_set)) {
        return $subject;
    }
else {
        return NULL;    
    }
    
}

?>
Gewijzigd op 10/01/2012 12:56:09 door Jos Vermassen
 
Erwin H

Erwin H

10/01/2012 13:45:17
Quote Anchor link
In de eerste query gebruikt je "subjects" als tabel naam, in de derde "subject". Heb je inderdaad twee tabellen met die namen, of is een van de twee een tikfout?
 
Jos Vermassen

Jos Vermassen

10/01/2012 13:47:38
Quote Anchor link
Erwin H op 10/01/2012 13:45:17:
In de eerste query gebruikt je "subjects" als tabel naam, in de derde "subject". Heb je inderdaad twee tabellen met die namen, of is een van de twee een tikfout?

dit is een tikfout, maar nog steeds hetzelfde..
 
- SanThe -

- SanThe -

10/01/2012 14:20:20
Quote Anchor link
Marco PHPJunkie op 10/01/2012 12:45:22:
en in je 3de query sluit je telkens af het moet een doorlopend stuk zijn...
want nu pakt hij alleen: SELECT * en de rest niet...


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$query
= "SELECT * ";
         "FROM subject ";
         "WHERE id=" . $subject_id ." ";
         "LIMIT 1";

echo $query;
?>


Die echo zal dit geven: 'SELECT *'
 
Jos Vermassen

Jos Vermassen

10/01/2012 15:32:35
Quote Anchor link
- SanThe - op 10/01/2012 14:20:20:
Marco PHPJunkie op 10/01/2012 12:45:22:
en in je 3de query sluit je telkens af het moet een doorlopend stuk zijn...
want nu pakt hij alleen: SELECT * en de rest niet...


Die echo zal dit geven: 'SELECT *'

dat heb ik al aangepast (zie post hier boven), dit is niet het probleem
Gewijzigd op 10/01/2012 15:34:30 door Jos Vermassen
 
Marco PHPJunky

Marco PHPJunky

10/01/2012 16:10:16
Quote Anchor link
ga eens kijken bij welke query het precies fout gaat...

dit kan je doen door ze even buiten de functie te testen ( in een echo gooien, testen in phpmyadmin zelf, rechtstreeks uitvoeren met de mysql_error() erachter)

pak desnoods even een nieuw bestand en probeer ze met alleen een database verbinding erin uit...
 
Jos Vermassen

Jos Vermassen

10/01/2012 18:08:25
Quote Anchor link
Marco PHPJunkie op 10/01/2012 16:10:16:
ga eens kijken bij welke query het precies fout gaat...

dit kan je doen door ze even buiten de functie te testen ( in een echo gooien, testen in phpmyadmin zelf, rechtstreeks uitvoeren met de mysql_error() erachter)

pak desnoods even een nieuw bestand en probeer ze met alleen een database verbinding erin uit...


Ik heb het stap voor stap opgebouwd en het ging pas fout vanaf de derde query.
 
- SanThe -

- SanThe -

10/01/2012 18:11:26
Quote Anchor link
Hoe ziet die derde query er nu uit?
 
Jos Vermassen

Jos Vermassen

10/01/2012 18:14:37
Quote Anchor link
- SanThe - op 10/01/2012 18:11:26:
Hoe ziet die derde query er nu uit?

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
function get_subject_by_id($subject_id) {
    global $connection;
    $query = "SELECT * ";
    $query .= "FROM subjects ";
    $query .= "WHERE id=" . $subject_id . " ";
    $query .= "LIMIT 1";
    $result_set = mysql_query($query, $connection);
    confirm_query($result_set);
    if($subject = mysql_fetch_array($result_set)) {
        return $subject;
    }
else {
        return NULL;    
    }
}

?>
Gewijzigd op 10/01/2012 18:15:51 door Jos Vermassen
 
- SanThe -

- SanThe -

10/01/2012 18:27:41
Quote Anchor link
Welke error krijg je nu?
 
Jos Vermassen

Jos Vermassen

10/01/2012 18:29:31
Quote Anchor link
- SanThe - op 10/01/2012 18:27:41:
Welke error krijg je nu?


"Database query failed:", hij geeft geen mysql_error weer
 
- SanThe -

- SanThe -

10/01/2012 18:34:40
Quote Anchor link
FF grof testen:
$result_set = mysql_query($query, $connection) or die(mysql_error());
Gewijzigd op 10/01/2012 20:12:04 door - SanThe -
 
Jos Vermassen

Jos Vermassen

10/01/2012 18:36:29
Quote Anchor link
- SanThe - op 10/01/2012 18:34:40:
FF grof testen:
$result_set = mysql_query($query, $connection) or die(mysql-error());


nu geeft ie helemaal niets terug
 
Marco PHPJunky

Marco PHPJunky

10/01/2012 19:35:24
Quote Anchor link
En je doet wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$result_set
= mysql_query($query, $connection) or die(mysql_error());
echo $result_set;
?>


ps. even aangepast want het is; mysql_error() geen mysql-error()...
denk even een typefoutje...
 
Jos Vermassen

Jos Vermassen

10/01/2012 19:37:54
Quote Anchor link
Marco PHPJunkie op 10/01/2012 19:35:24:
En je doet wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$result_set
= mysql_query($query, $connection) or die(mysql_error());
echo $result_set;
?>


ps. even aangepast want het is; mysql_error() geen mysql-error()...
denk even een typefoutje...


Ja had ik al gezien, maar zo krijg ik helemaal geen error.

Toevoeging op 10/01/2012 19:41:30:

probleem opgelost (eindelijk), ik moest deze lijn naar lijn 3 verplaatsen in "content.php".

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("includes/connection.php"); ?>
 
- SanThe -

- SanThe -

10/01/2012 20:13:12
Quote Anchor link
Marco PHPJunkie op 10/01/2012 19:35:24:
ps. even aangepast want het is; mysql_error() geen mysql-error()...
denk even een typefoutje...


Oeps, inderdaad: Typo. Aangepast.
 
Jos Vermassen

Jos Vermassen

10/01/2012 20:18:20
Quote Anchor link
Bedankt voor jullie hulp! :)
 



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.