Ancienne extension Mysql
Résolu/Fermé
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
-
22 mars 2018 à 20:42
LaChaux78 Messages postés 569 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 25 octobre 2024 - 25 mars 2018 à 19:16
LaChaux78 Messages postés 569 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 25 octobre 2024 - 25 mars 2018 à 19:16
A voir également:
- Ancienne extension Mysql
- Splitcam ancienne version - Télécharger - Messagerie
- Extension dat - Guide
- Extension .bin - Guide
- Changer extension fichier - Guide
- Extension 7z - Guide
8 réponses
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
Ambassadeur
1 548
23 mars 2018 à 00:40
23 mars 2018 à 00:40
bonsoir, "Impossible de me connecter avec cette fonction": message d’erreur (lequel), comportement inattendu (lequel)?
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
Modifié le 23 mars 2018 à 09:04
Modifié le 23 mars 2018 à 09:04
Bonjour,
En fait lorsque je fait un var_dump de $bdd cela me renvoie NULL
Merci
En fait lorsque je fait un var_dump de $bdd cela me renvoie NULL
Merci
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
1 548
23 mars 2018 à 11:26
23 mars 2018 à 11:26
fais-tu le var_dump dans la fonction bdd?
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
23 mars 2018 à 22:23
23 mars 2018 à 22:23
Bonjour,
Je n'y comprends rien en fait...
lorsque je met mes deux fonctions aucun problème mais quand je rajoute la requète pour récupérer la configuration du site et là impossible de me connecter à ma BDD
Je n'y comprends rien en fait...
lorsque je met mes deux fonctions aucun problème mais quand je rajoute la requète pour récupérer la configuration du site et là impossible de me connecter à ma BDD
<?php session_start(); function bdd() { $PARAM_hote ='*******'; $PARAM_nom_bdd ='**********'; $PARAM_utilisateur ='**********'; $PARAM_mot_passe ='************'; try { $bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe); $bdd->exec("SET CHARACTER SET utf8"); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { echo 'Impossible de se connecter à la base de donnée</br>'; echo 'Erreur : ' . $e->getMessage() . '<br />'; echo 'N° : ' . $e->getCode(); } return $bdd; } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Variables diverses $cfg = "cdc_configsite"; $kw = "keywords.txt"; // Fichier des mots clefs $lg = 140; // Largeur des sous-menus $jours = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'); $chars = "iso-8859-1"; // ok $sprt = "css/menusprt.css"; // Styles print ok $sscr = "css/menusscr.css"; // Styles screen ok $amail = ""; $aname = ""; // Nom de l'admin (Publisher; Sera l'auteur si non indiqué) $lastsave = 0; // Date de la dernière sauvegarde (timestamp calculé plus loin) $nbsave = 0; // Nombre de sauvegardes enregistrées $lastsql = ''; // Nom du dernier fichier de sauvegarde // Fonction qui sert à faire les requêtes SQL function executeQuery($requete,$bdd) { //exécution de la requête try { $resultat = $bdd->prepare($requete); $resultat->execute(); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); exit(0); // en cas d'erreur.. arrête le script ! } return $resultat; } // Récupérer la configuration du site $requete = "SELECT * FROM $cfg"; $config = executeQuery($requete,$bdd); while ($donnees = $config->fetch()) { ${$donnees->clef} = $donnees->valeur; }
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
1 548
24 mars 2018 à 07:45
24 mars 2018 à 07:45
"impossible de me connecter": message d'erreur?
peux-tu partager la partie de code où tu fais le var_dump de $bdd?
peux-tu partager également la partie du code où tu appelles la function bdd()?
peux-tu partager la partie de code où tu fais le var_dump de $bdd?
peux-tu partager également la partie du code où tu appelles la function bdd()?
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
24 mars 2018 à 10:13
24 mars 2018 à 10:13
Bonjour,
Voici le début de ma page où j'ai fait un var_dump de $bdd qui me retourne NULL. A priori c'est ma page de la class qui pose problème. En fait ma class me retourne mes listes déroulantes. Je n'ai aucun message d'erreur je suis dépassé. Merci pour votre aide.
Voici ma class
Voici le début de ma page où j'ai fait un var_dump de $bdd qui me retourne NULL. A priori c'est ma page de la class qui pose problème. En fait ma class me retourne mes listes déroulantes. Je n'ai aucun message d'erreur je suis dépassé. Merci pour votre aide.
var_dump($bdd); $index = 2; require("libs/init.php"); require("libs/class.liste.php"); $debug = 0; // Création des listes déroulantes à utiliser $LDpers = new liste("libs/personnes","","oblig"); $LDpaie = new liste("libs/paiements","","oblig"); $LDclas = new liste("libs/classes","","oblig"); $LDpup = new liste("libs/pupitres","","");
Voici ma class
class liste { // Attributs, propriétés de la classe var $champs = ""; var $texte = ""; var $requete = ""; var $ctrlname = ""; var $tronque = 0; var $option = ""; var $style = ""; var $onchange = ""; var $slimit = ""; var $limit = ""; var $nbrecs = 0; // Constructeur de la classe liste. // Lecture de la définition de la liste, initialisation des propriétés function liste($objet, $ctrlname="", $style="", $limit=0) { if($objet != "null") { $slimit = $limit; // sauvegarde du paramètre / fichier .def require("$objet.def.php"); $this->texte = $texte; $this->ctrlname = $ctrlname; $this->style = $style; $this->onchange = $onchange; $this->champs = $this->getfieldnames($champs); if($limit) { $this->limit = $limit; } if($lignes) { $this->texte = ""; $this->option = " multiple size=\"$lignes\""; } if($where) { $insWHERE = "WHERE $where"; } else { $insWHERE = ""; } if($group) { $insGROUP = "GROUP BY $group"; } else { $insGROUP = ""; } if($ordre) { $insORDER = "ORDER BY $ordre"; } else { $insORDER = ""; } if($limit) { $insLIMIT = "LIMIT 0,$limit"; } else { $insLIMIT = ""; } if($slimit) { $insLIMIT = "LIMIT 0,$slimit"; } else { $insLIMIT = ""; } $this->requete = "SELECT $champs FROM $table $insWHERE $insGROUP $insORDER $insLIMIT;"; global $bdd; $resultat = executeQuery($this->requete,$bdd); $this->nbrecs = $resultat->rowCount(); unset($resultat); } } function write($indice="",$text=0) { global $bdd; $champs = explode(",",$this->champs); $idctrl = $champs[0]; if($this->ctrlname) { $idctrl = $this->ctrlname; } if($this->style) { $style = " class=\"$this->style\""; } if($this->onchange) { $onchange = " onchange=\"javascript:$this->onchange\""; } $resultat = executeQuery($this->requete,$bdd); $this->nbrecs = $resultat->rowCount(); if($text && $indice) { $textonly = 1; } else { $textonly = 0; } if(!$textonly) { echo "<select name=\"".$idctrl."\"$this->option".$style.$onchange.">"; if(!$this->option) { if($this->texte) { echo "<option value=\"null\">$this->texte"; } } } while ($donnees = $resultat->fetch()) { if($indice/1) { $idnum = 0; } else { $idnum = 1; } if($indice == $donnees->$champs[$idnum]) { $thisrec = 1; } else { $thisrec = 0; } if (count($champs) > 2) { $texte = $donnees->$champs[1]; $n = 2; if($textonly && $thisrec) { $buffer = $texte; } while(count($champs) > $n) { if($textonly && $thisrec) { $buffer .= " ".$donnees->$champs[$n]; $n++; } else { $texte .= " ".$donnees->$champs[$n]; $n++; } } } else { if($textonly && $thisrec) { $buffer = $donnees->$champs[1]; } else { $texte = $donnees->$champs[1]; } } if($this->tronque) { $lg = $this->tronque-9; // 9 = longueur de "... / ..." if(($lg % 2) != 0) { $lg++; } if(strlen($texte) > $lg) { $texte = substr($texte,0,$lg/2) . "... / ..." . substr($texte,strlen($texte)-($lg/2),$lg/2); } if(strlen($buffer) > $lg) { $buffer = substr($buffer,0,$lg/2) . "... / ..." . substr($buffer,strlen($buffer)-($lg/2),$lg/2); } } if(!$textonly) { echo "<option value=\"".$donnees->$champs[0]."\""; if($thisrec) { echo " selected"; } echo ">".$texte; } } if($textonly) { echo $buffer; } else { echo "</select>\n"; } } function getfieldnames($champs) { $fields = explode(",", $champs); for($n=0; $n<count($fields); $n++) { if(strstr(strtolower($fields[$n]), ".")) { $nfields = explode(".", $fields[$n]); $fields[$n] = $nfields[count($nfields)-1]; } if(strstr(strtolower($fields[$n]), " as ")) { $nfields = explode(" ", $fields[$n]); $fields[$n] = $nfields[count($nfields)-1]; } } $rfields = $fields[0]; for($n=1; $n<count($fields); $n++) { $rfields .= ",".$fields[$n]; } return $rfields; }
yg_be
Messages postés
23295
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 octobre 2024
1 548
24 mars 2018 à 11:08
24 mars 2018 à 11:08
appelles-tu la fonction bdd() avant de faire
var_dump($bdd);?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
24 mars 2018 à 19:49
24 mars 2018 à 19:49
Toute la journée dessus pour un résultat nul.
Là j'ai fait appel à la fonction comme ça en début de chaque page.
si je met un echo avant l'appel aux fonctions cela me retourne bien ok si je met le echo juste après page vierge
Là j'ai fait appel à la fonction comme ça en début de chaque page.
$bdd = bdd(); var_dump($bdd);
si je met un echo avant l'appel aux fonctions cela me retourne bien ok si je met le echo juste après page vierge
<?php $index = 2; require("libs/init.php"); require("libs/class.liste.php"); $debug = 0; echo "ok"; // Création des listes déroulantes à utiliser // variable = new liste("nom de la liste", "nom du controle", "style"); ici, controle = "" => on laisse le nom par défaut (ex: idpers) $LDpers = new liste("libs/personnes","","oblig"); // Liste des adhérents $LDpaie = new liste("libs/paiements","","oblig"); // Liste des paiements possibles $LDclas = new liste("libs/classes","","oblig"); // Liste des classes de musiciens $LDpup = new liste("libs/pupitres","",""); // Liste des pupitres par musiciens
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
24 mars 2018 à 20:02
24 mars 2018 à 20:02
Bonjour,
Je viens de m'apercevoir d'un détail qui me parait anormal je vais regarder ça et te redis.
Merci
Je viens de m'apercevoir d'un détail qui me parait anormal je vais regarder ça et te redis.
Merci
jordane45
Messages postés
38263
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 octobre 2024
4 693
Modifié le 24 mars 2018 à 21:16
Modifié le 24 mars 2018 à 21:16
Bonjour,
Affiches tu les erreurs PHP ?
Penses à paramétrer ton fichier php.ini pour cela, ou à placer ces lignes de code au début de tes scripts :
Ensuite, plutôt que d'essayer de faire des "require" dans tes class... ne connais tu pas l'héritage ( les extends ) ?
Dans l'idéal.. tu crée une CLASS pour ta bdd (en prenant le code de ton fichier init.php)
Puis tu créés ta class "liste" où tu y fais un extend de bdd
Puis, dans chacune de tes autres class, tu fais un extend de list.
Pense aussi à mettre un constructeur dans tes class, et à préfixer les différentes fonctions par private/public en fonction de tes besoins.
En gros :
Et pour finir... utilise un autoloader pour tes class ou fais les TOUS les require au début de ta page principale.
https://www.php.net/manual/fr/language.oop5.autoload.php
NB: evite de nommer tes fonctions comme le nom de tes class
NB² : la déclaration des variables dans les class se fait avec UNIQUEMENT avec les mots clés :
Voir :
https://www.php.net/manual/fr/language.oop5.visibility.php
https://www.php.net/manual/fr/language.oop5.static.php
https://www.php.net/manual/fr/language.oop5.constants.php
... tes "
D'où tes soucis d'affichage je pense.....
Affiches tu les erreurs PHP ?
Penses à paramétrer ton fichier php.ini pour cela, ou à placer ces lignes de code au début de tes scripts :
error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
Ensuite, plutôt que d'essayer de faire des "require" dans tes class... ne connais tu pas l'héritage ( les extends ) ?
Dans l'idéal.. tu crée une CLASS pour ta bdd (en prenant le code de ton fichier init.php)
Puis tu créés ta class "liste" où tu y fais un extend de bdd
Puis, dans chacune de tes autres class, tu fais un extend de list.
Pense aussi à mettre un constructeur dans tes class, et à préfixer les différentes fonctions par private/public en fonction de tes besoins.
En gros :
class bddClass { public $bdd = NULL; function __construct() { $this->bdd = $this->cnxbdd(); } public function cnxbdd() { //le code de connexion à la bdd } } class listeClass extends bddClass { function __construct() { parent::__construct(); } public function liste($ctrlname="", $style="", $limit=0) { $bdd = parent::bdd; //le reste de ton code } } class personnes extends listeClass { function __construct() { parent::__construct(); } }
Et pour finir... utilise un autoloader pour tes class ou fais les TOUS les require au début de ta page principale.
https://www.php.net/manual/fr/language.oop5.autoload.php
<?php function __autoload($class_name) { include $class_name . '.php'; } $obj = new MaClasse1(); $obj2 = new MaClasse2(); ?>
NB: evite de nommer tes fonctions comme le nom de tes class
NB² : la déclaration des variables dans les class se fait avec UNIQUEMENT avec les mots clés :
public $var1 = 1; protected $var2 = 2; private $var3 = 3; static $var4 = 4; const UNECONSTANTE = 1000;
Voir :
https://www.php.net/manual/fr/language.oop5.visibility.php
https://www.php.net/manual/fr/language.oop5.static.php
https://www.php.net/manual/fr/language.oop5.constants.php
... tes "
var $truc = ..... je doute que ça fonctionne.
D'où tes soucis d'affichage je pense.....
LaChaux78
Messages postés
569
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
25 octobre 2024
32
25 mars 2018 à 19:16
25 mars 2018 à 19:16
Bonjour,
Déjà pour mon erreur j'ai fait une grosse bourde que je n'ose même pas vous dire, plusieurs jours dessus pour une connerie mais bon.....
Merci je reprends toute ma partie administration depuis le début, je vais regarder de plus près tes conseils et essayer de les adapter pour la suite.
Je clore ce sujet merci.
Déjà pour mon erreur j'ai fait une grosse bourde que je n'ose même pas vous dire, plusieurs jours dessus pour une connerie mais bon.....
Merci je reprends toute ma partie administration depuis le début, je vais regarder de plus près tes conseils et essayer de les adapter pour la suite.
Je clore ce sujet merci.