myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Php - mysql (https://mygully.com/showthread.php?t=2093457)

Magicstar 09.08.10 16:28

Php - mysql
 
So Leute, bin ich besoffen, oder wieso funktioniert mein Code nicht -.-
der mist ging doch sonst auch immer (oder bin ich schon so eingerostet, das ich das nimma weiß?^^)

hier mal der code:
PHP-Code:

<?php
function db_connect() {
    include(
"config.php");
    
$verbindung mysql_connect($mysql_host,$mysql_user,$mysql_pass);
    if(!
$verbindung)die("Keine Verbindung zur Datnbank!");

}

function 
db_close() {
    
mysql_close($verbindung);
}

function 
access_log_list() {
    
db_connect();
    
$abfrage="select * from access_log";
    
$access_list=mysql_db_query($mysql_db$abfrage$verbindung);
    echo 
"<table width='100%'>
<tr>
<td>
<b>Kundennr.</b>
</td>
<td>
<b>IP-Adresse</b>
</td>
<td>
<b>Datum</b>
</td>
</tr>"
;
while(list(
$kundennummer,$ip,$zeit)=mysql_fetch_array($access_list))
{
    echo 
"
    <tr>
<td>
$kundennummer
</td>
<td>
$ip
</td>
<td>
$zeit
</td>
</tr>"
;
}
echo 
"</table>";
}
?>

wenn ich die funktion access_log_list aufrufe, dann bekomme ich folgende fehler:

Zitat:

Warning: mysql_db_query() expects parameter 3 to be resource, null given in [pfad mal rausgenommen]funktionen.php on line 16

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in [pfad mal rausgenommen]funktionen.php on line 29
aber eigendlich ist doch alles da, was das s***** braucht (oder habe ich meine test-umgebung verkackt?^^)

PoTaPi4 09.08.10 16:51

$mysql_db, $abfrage, $verbindung scheinen lokale funktionsvariablen zu sein

urga 09.08.10 19:06

na insbesondere ist $verbindung jeweils eine lokale variable:
variante 1: (unschön)
PHP-Code:

function db_connect() {
    global 
$verbindung$mysql_db;
    include(
"config.php");
    
$verbindung mysql_connect($mysql_host,$mysql_user,$mysql_pass);
    if(!
$verbindung)die("Keine Verbindung zur Datnbank!");

}

function 
db_close() {
    global 
$verbindung;
    
mysql_close($verbindung);
}

function 
access_log_list() {
    global 
$verbindung$mysql_db;
    
db_connect();
    
$abfrage="select * from access_log";
    
$access_list=mysql_db_query($mysql_db$abfrage$verbindung); 
...


variante 2 (besser)
PHP-Code:

<?php
class DataBase {

    protected 
$verbindung;
    protected 
$mysql_db;
    function 
__construct() {
        
$this->db_connect();
    }
    function 
__destruct() {
        
$this->db_close();
    }
    function 
db_connect() {
        if (
$this->verbindung) return; // verbindung besteht bereits
        
include("config.php");
        
$this->verbindung mysql_connect($mysql_host,$mysql_user,$mysql_pass);
        if(!
$this->verbindung)die("Keine Verbindung zur Datnbank!");
        
$this->mysql_db $mysql_db// funzt aber nur wenn $mysql_db in config.php definiert wird!

    
}

    function 
db_close() {
        if (
$this->verbindung) {
            
mysql_close($this->verbindung);
            
$this->verbindung null;
        }
    }

    function 
access_log_list() {
        
$abfrage="select * from access_log";
        
$access_list=mysql_db_query($this->mysql_db$abfrage$this->verbindung); 
        
// ...
    
}
// class DataBase

$db = new DataBase();
$db->access_log_list();


variante 3, am besten:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Magicstar 09.08.10 20:06

dankeschön :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.