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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
function dbConnection()
{
switch($GLOBALS["CONF_DB_SGBD_TYPE"])
{
case "IBMDB2" :
case "MSAccess" :
$PearServerType = "odbc";
break;
default:
$PearServerType = $GLOBALS["CONF_DB_SGBD_TYPE"];
break;
}
$Dsn = "$PearServerType://";
if (!empty($GLOBALS["CONF_DB_USER"]))
{
$Dsn .= $GLOBALS["CONF_DB_USER"];
}
if (!empty($GLOBALS["CONF_DB_PASSWORD"]))
{
$Dsn .= ":".$GLOBALS["CONF_DB_PASSWORD"];
}
$Dsn .= "@".$GLOBALS["CONF_DB_SERVER"];
if (!empty($GLOBALS["CONF_DB_DATABASE"]))
{
$Dsn .= "/".$GLOBALS["CONF_DB_DATABASE"];
}
// Open the connection
$DbCon = DB::connect($Dsn, FALSE);
// If the connection fails
if (DB::isError($DbCon))
{
// Try to create a localhost connection
$Dsn = "$PearServerType://";
if (!empty($GLOBALS["CONF_DB_USER"]))
{
$Dsn .= $GLOBALS["CONF_DB_USER"];
}
if (!empty($GLOBALS["CONF_DB_PASSWORD"]))
{
$Dsn .= ":".$GLOBALS["CONF_DB_PASSWORD"];
}
$Dsn .= "@localhost";
if (!empty($GLOBALS["CONF_DB_DATABASE"]))
{
$Dsn .= "/".$GLOBALS["CONF_DB_DATABASE"];
}
// Open the localhost connection
$DbCon = DB::connect($Dsn, FALSE);
// If the localhost connection fails
if (DB::isError($DbCon))
{
die("$DbCon->message<br /><b>".$GLOBALS["LANG_ERROR_DB_CONNECTION"]."</b>");
}
}
// Return the DB object created
return $DbCon;
}
J'ai vu dans le code de l'application qu'habituellement, les requêtes sont effectuées de la façon suivante :
$DbResult = $DbCon->query(Select ... WHERE ...);
J'ai donc opté pour créer la fonction suivante :
function AccessConextualMenus($ContextualMenu)
{
// Connection to the database
$DbCon = dbConnection();
$SupportMemberStateID = $_SESSION["SupportMemberStateID"];
// Database request
$DbResult = $DbCon->query("SELECT cmf.ContextualMenuFonctionName, acm.AccessContextualMenuState FROM AccessContextualMenus acm, ContextualMenuFonctions cmf, ContextualMenus cm WHERE cm.ContextualMenuID = cmf.ContextualMenusID AND acm.ContextualMenuFonctionID = cmf.ContextualMenuFonctionID AND cm.ContextualMenuName = '$ContextualMenu' AND acm.SupportMemberStateID = '$SupportMemberStateID'");
// Creation of the contextual menu
while ($row = mysql_fetch_assoc($DbResult) ){
$fonction = $row['ContextualMenuFonctionName'];
$ContextualMenuReturned [$fonction] = $row['AccessContextualMenuState'];
}
return $ContextualMenuReturned;
}
Mais je récupère l'errreur suivante :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
J'ai essayé d'utiliser mysql_error, mais ça ne me met rien...:cry:
Par contre, avec le code :
function AccessConextualMenus($ContextualMenu)
{
// Connection to the database
$DbCon = dbConnection();
$SupportMemberStateID = $_SESSION["SupportMemberStateID"];
// Database request
$sql= "SELECT cmf.ContextualMenuFonctionName, acm.AccessContextualMenuState FROM AccessContextualMenus acm, ContextualMenuFonctions cmf, ContextualMenus cm WHERE cm.ContextualMenuID = cmf.ContextualMenusID AND acm.ContextualMenuFonctionID = cmf.ContextualMenuFonctionID AND cm.ContextualMenuName = '$ContextualMenu' AND acm.SupportMemberStateID = '$SupportMemberStateID'";
$DbResult = mysql_query($sql);
// Creation of the contextual menu
while ($row = mysql_fetch_assoc($DbResult) ){
$fonction = $row['ContextualMenuFonctionName'];
$ContextualMenuReturned [$fonction] = $row['AccessContextualMenuState'];
}
return $ContextualMenuReturned;
} |
Partager