Avatar billede ujo33 Nybegynder
27. februar 2003 - 19:48 Der er 8 kommentarer og
1 løsning

Forbindelsen til MySQL virker ikke ...

Jeg har problemer med forbindelsen mellem PHP-side til MySQL database. Det lyder sådan:
-------------------------------------------------
An error has ocurred while loading configuration.

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/kalaaleq/public_html/phpwebthings-0.6.0/core/mysql.lib.php on line 46
Invalid lang file
Warning: Invalid argument supplied for foreach() in /home/kalaaleq/public_html/phpwebthings-0.6.0/core/main.php on line 80

An error has ocurred while loading user menu.

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/kalaaleq/public_html/phpwebthings-0.6.0/core/mysql.lib.php on line 46
----------------------------------------------------------
scriptet i -->  mysql.lib.php on line 46  :

45
46 function db_free_result($argIndex)
47 {
48    mysql_free_result($argIndex);
49    return;
} 
----------------------------------------------------------
scriptet i -->  main.php on line 80
79 $modules = array();
80 foreach($cfg["modules"] as $mid=>$enabled) {
81    $modules[$mid] = false;
82    if ($enabled) include_once("modules/$mid/main.php");
83}
----------------------------------------------------------

Hvad kan det betyde?

Please hjælp mig ...

Ujo33
Avatar billede alrua Nybegynder
27. februar 2003 - 19:50 #1
det betyder at der er noget galt med dit sql query. Der er sikkert gået noget galt da du bruge mysql_query...find fejlen ved at skrive fx

$result = mysql_query("...") or die(mysql_error());

så får du en fejlmeddelelse fra MySQL når det ikke virker og så kan du rette fejlen :)
Avatar billede ujo33 Nybegynder
27. februar 2003 - 19:57 #2
Der står  :
You have an error in your SQL syntax near '...' at line 1

er der noget der skal stå inde '...' ?

line 1 er jo bare <?php
Avatar billede alrua Nybegynder
27. februar 2003 - 19:58 #3
det var meningen at du skulle ændre din egen mysql_query ... er der hvor du skal skrive dit query.

line 1 er line 1 af dit mysql-query (som kun er på en linje...)
Avatar billede ujo33 Nybegynder
27. februar 2003 - 20:05 #4
Undskyld jeg er helt forvirret .... jeg er også nybegynder med PHP & MySQL

Hvad er egentlig query?
Kan du give mig eksempler hvordan der kan være?
Avatar billede alrua Nybegynder
27. februar 2003 - 20:10 #5
det er når du henter noget ud af databasen.

Fx $result = mysql_query("SELECT * FROM tabel");

din fejl betyder at $cfg["modules"] ikke er et array og at din funktion db_free_result ikke får et mysql-resultat som argument.

Du kan jo prøve at paste hele din kode (de to filer), det ville hjælpe :)
Avatar billede ujo33 Nybegynder
27. februar 2003 - 20:20 #6
nu står der :

No Database Selected
----------------------------------------
mysql.lib.php:

<?php

function db_connect($argHost, $argDatabase, $argUser, $argPass)
{
    $link = mysql_connect($argHost, $argUser, $argPass);
    mysql_select_db($argDatabase);
    return $link;
};

function sql_select_db($argDatabase) {
    mysql_select_db($argDatabase);
}

function db_close($argLink)
{
    return mysql_close($argLink);
};

function db_query($argQry)
{
    return mysql_query($argQry);
};

function db_result($argIndex, $argRow=0, $argField=0)
{
    return mysql_result($argIndex, $argRow, $argField);
};

function db_fetch_row($argIndex)
{
    return mysql_fetch_row($argIndex);
};

function db_fetch_array($argIndex)
{
    return mysql_fetch_array($argIndex);
};

function db_fetch_object($argIndex)
{
    return mysql_fetch_object($argIndex);
};

function db_free_result($argIndex)
{
    mysql_free_result($argIndex);
    return;
}
$result = mysql_query("SELECT * FROM tabel") or die(mysql_error());
<--- det er den som jeg lige har prøvet--->
function db_num_rows($argIndex)
{
    return mysql_num_rows($argIndex);
};

function db_num_fields($argIndex)
{
    return mysql_num_fields($argIndex);
};

function db_error()
{
    return mysql_error();
}
?>
--------------------------------------------------------------
main.php :

<?php
if (strstr($_SERVER["PHP_SELF"], "/core/"))  die ("You can't access this file directly...");
session_start();

function getmicrotime()
{
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime();

$modules = array();
$headcode = "";
$config = array();
$config["menu"] = array();
require("wt_config.php");
if ( ($config["dbtype"] === "mysql") || ($config["dbtype"] === "pgsql") ) {
    require("core/{$config["dbtype"]}.lib.php");
} else {
    require("core/mysql.lib.php");
}
include_once("core/login.php");

function check_lang( $lang )
{
    // up to only 4 letters
    $ret = substr( $lang, 0, 4 );
    if( ereg("^[a-z]{2,4}$", $ret) ) return $ret;
    else
    {
        echo "Invalid lang file";
        return "enus";
    }
}

$conn = db_connect($config["host"],$config["database"],$config["user"],$config["password"]) or die( db_error() );
// Load configuration
$cfg = array();

$ret = db_query( "select * from {$config["prefix"]}_config" );
if( !$ret ) {
    print "<div class=\"error\">An error has ocurred while loading configuration.</div>";
} else {
    while( $rowcfg = db_fetch_array($ret) ) {
        $cfg[$rowcfg["id"]] = unserialize(stripslashes($rowcfg["config"]));
    }
}
db_free_result($ret);

include_once( "lang/msg_".check_lang($cfg["core"]["lang"]).".php" );
require_once("core/theme.php");

//if( !isset($config["show_map"]) ) $config["show_map"] = true;

//if( $config["show_map"] )
//{
//    $sitemap = array();
//    $sitemap[] = array(HOME_TITLE, 'index.php');
//}
//

//
// Links at main box
$config["menu"][10] = array( "title"=>$lang["HOME_TITLE"], "file"=>"index.php", "type"=>"A" );
$config["menu"][110] = array( "title"=>$lang["NEW_USER_LINK"], "file"=>"newuser.php", "type"=>"N" );
$config["menu"][120] = array( "title"=>$lang["MYACCT_TITLE"], "file"=>"myaccount.php", "type"=>"L" );
$config["menu"][130] = array( "title"=>$lang["STATS_TITLE"], "file"=>"stats.php", "type"=>"A" );

// Links at admmenu
$config["admmenu"] = array();
$config["admmenu"]["Info"] = array( "file"=>"adm_info.php", "class"=>"admin" );
$config["admmenu"]["WebAdmin"] = array( "file"=>"admin.php", "class"=>"admin" );
$config["admmenu"]["Send e-mail"] = array( "file"=>"adm_sendmail.php", "class"=>"admin" );

$config["admmenu"]["Users"] = array( "file"=>"adm_users.php", "class"=>"admin" );
$config["admmenu"]["User Access"] = array( "file"=>"adm_access.php", "class"=>"admin" );
$config["admmenu"]["Menu"] = array( "file"=>"adm_menu.php", "class"=>"admin" );

$modules = array();
foreach($cfg["modules"] as $mid=>$enabled) {
    $modules[$mid] = false;
    if ($enabled) include_once("modules/$mid/main.php");
}

if( check_module("fileman") && $cfg["core"]["avatars"] )
    $config["fileman"]["avatars"] = array( "name"=>"Avatars", "folder"=>$cfg["core"]["avatars_folder"] );

// loads the user menu from database
$ret = db_query( "select * from {$config["prefix"]}_menu order by pos" );
if( !$ret ) {
    print "<div class=\"error\">An error has ocurred while loading user menu.</div>";
} else {
    while( $rmenu = db_fetch_array($ret) ) {
        $pos = $rmenu["pos"];
        $c = 0;
        while( isset($config["menu"][$pos]) ) {
            $pos++;
            // if this happens, thre is something very wrong
            if( ++$c > 100 ) {
                print "<div class=\"error\">The menu is full.</div>";
                break;
            }
        }
        $config["menu"][$pos] = array( "title"=>$rmenu["title"], "file"=>$rmenu["url"], "type"=>$rmenu["type"] );
    }
}
db_free_result($ret);

// todo: passar para login.php
// if the user comes from a site below the same url
// like www.phpdbform.com and www.phpdbform.com/test
// empty the session

if(isset($_SESSION["wt"])) {
    if( $_SESSION["wt"]["url"] != $cfg["core"]["url"] ) {
        clear_login();
    }
} else {
    clear_login();
}

// User trying to login
if(isset($_POST["submit_login"])) {
    do_login();
}
if( !$_SESSION["wt"]["logged"] ) {
    check_autologin();
}

if( isset($_GET["act"]) && $_GET["act"]=="logout") {
    clear_login();
    delete_autologin();
}

function show_date( $date, $showtime=true )
{
    global $cfg;
    switch( $cfg["core"]["date_format"] )
    {
        case "fmtEUR":  $date_str = substr($date,8,2)."/".substr($date,5,2)."/".substr($date,0,4); break;
        case "fmtUSA":  $date_str = substr($date,5,2)."/".substr($date,8,2)."/".substr($date,0,4); break;
        default:        $date_str = substr($date,0,4)."-".substr($date,5,2)."-".substr($date,8,2); break;
    }
    if( $showtime ) $date_str .= " ".substr($date,11,5);
    return $date_str;
}

function crop_string( $text, $maxlen )
{
    if( strlen($text) <= $maxlen ) return $text;
    else return( substr( $text, 0, ($maxlen-3) ) . "..." );
}

function conv_date( $date, $showtime=true )
{
    global $cfg;
    switch( $cfg["core"]["date_format"] )
    {
        case "fmtEUR":  $date_str = substr($date,6,4)."-".substr($date,3,2)."-".substr($date,0,2); break;
        case "fmtUSA":  $date_str = substr($date,6,4)."/".substr($date,0,2)."/".substr($date,3,2); break;
        default:        $date_str = substr($date,0,4)."-".substr($date,5,2)."-".substr($date,8,2); break;
    }
    if( $showtime ) $date_str .= " ".substr($date,11,5);
    return $date_str;
}

//function session_dump()
//{
//  // dumps info about a session - debugging
//  $session_array = explode(";",session_encode());
//  $html = "SESSION VARIABLES DUMP<br><br>";
//  for ($x = 0; $x < count($session_array); $x++) {
//    $html .= "    $session_array[$x] <br>";
//  }
//  $html .= " <br><br>";
//  return $html;
//}
//
//function magic_encode( $var )
//{
//    if( get_magic_quotes_gpc() ) return $var;
//    else return addslashes($var);
//}
function delmagic( $value )
{
    // this function removes backslashes ig magic_quotes_gpc is on
    if( get_magic_quotes_gpc() ) return stripslashes( $value );
    else return $value;
}

function showavatar( $avatar, $realname )
{
    global $cfg;
    if( $cfg["core"]["avatars"] && $avatar != "" )
        return "<img src=\"{$cfg["core"]["avatars_folder"]}/$avatar\" alt=\"$realname\" width=100 height=100 border=0>";
    else return "&nbsp;";
}

function check_module( $module )
{
    global $modules;
    if( !isset($modules[$module]) ) return false;
    return $modules[$module];
}
?>
-----------------------------------------------------------------
Jeg skal nok svare dig igen, for jeg har fri lige nu ;-)
Avatar billede alrua Nybegynder
27. februar 2003 - 20:27 #7
du skal have fat i din konfigurationsfil og angive hvilken database scriptet skal bruge...det ser ud til at den ikke kan finde ud af at vælge en database...sikkert fordi det er konfigureret forkert :)
Avatar billede ujo33 Nybegynder
28. februar 2003 - 03:36 #8
YES !!! Jeg fandt ud af hvad det var !
Jeg vil sige 1000 tak for hjælpen ! Mit første værk virker nu !
Avatar billede alrua Nybegynder
28. februar 2003 - 07:00 #9
selv tak da :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester