0
votes

Choisir une base de données MySQL basée sur l'option Choice à partir d'une liste déroulante

Je travaille sur une application Web d'un système collégial. Je souhaite ajouter une option pour sélectionner la session comme (2017-2018, 2018-2019, 2019-2019, 2020-2021 ainsi de suite). À tout moment, l'administrateur devrait pouvoir sélectionner une session (comme 2017-2018) pour charger une session précédente et une base de données correspondante à partir de bases de données doit être chargée. Par défaut, la session actuelle doit être chargée au démarrage. J'utilise MySQL.

$conn = mysqli_connect('localhost', 'root', '', 'db2018');

if (!$conn) {
    die("connection failed". mysql_connect_error());
}               


8 commentaires

Je ne suis pas sûr de comprendre ce dont vous avez besoin, mais je ne pense pas que vous avez besoin de sessions pour le faire. Juste un chèque de date simple ferait.


Donc, rendez le paramètre de base de données une variable et définissez cela dans le formulaire. Ou perdre le paramètre de base de données et utilisez le mysqli_db_select () fonction pour sélectionner la base de données également basée sur une entrée de l'utilisateur


Oui comme @dohab dit, vous pouvez appeler $ Conn en fonction de l'année, la session n'a aucune utilité pour votre contexte.


Les gars, ce n'était qu'un mauvais usage de la session de mot, devrait probablement avoir utilisé l'exercice


@Riggsfolly a raison. Mon mauvais j'ai utilisé la session de mot et vous l'avez compris comme une chose _session. par session, je voulais dire la session académique 2018-2019 ...


@Riggsfolly Comment passerai-je la valeur du paramètre de base de données via Inclure la déclaration?


Il y a un couple de réponse qui vous montre comment


Oui, problème résolu grâce à @paddy Hallihan. Sa solution était très utile. Merci aussi. Merci à tout le monde. :)


4 Réponses :


0
votes

$conn = mysqli_connect('localhost', 'root', '', 'db2018');


0 commentaires

0
votes

Vous pouvez créer 2 fonctions d'abord pour vous connecter initialement et le second pour vous reconnecter avec le nom de DB différent en fonction de l'utilisateur sélectionné.

<?php
  $dbName = date('Y');
  function connectDB(){
    $conn = mysqli_connect('localhost', 'root', '', $dbName);
  }

  function reconnectDB($dbName){
    mysqli_close($conn);
    $conn = mysqli_connect('localhost', 'root', '', $dbName);
  }
?>


0 commentaires

0
votes

Formulaire HTML:

<?php
//start session
session_start();

//if session is not set, set the default to 'db2018'
if(!isset($_SESSION['db_name']) || $_SESSION['db_name']==""){
    $_SESSION['db_name'] = 'db2018';
}

//if the form is posted update the session
if(isset($_POST['year']) && $_POST['year']!=""){
    $_SESSION['db_name'] = $_POST['year'];
}

//open connection using session variable
$conn = mysqli_connect('localhost', 'root', '', $_SESSION['db_name']);
?>


0 commentaires

1
votes

J'aurais une matrice de mes gammes d'année sur la page initiale où l'administrateur / utilisateur doit sélectionner l'année puis renseigné une liste déroulante des années lorsqu'un utilisateur sélectionne une année ferait simplement un appel AJAX au fichier DB.

main.php xxx

puis

dbh.inc.php xxx


1 commentaires

Merci beaucoup. Cependant, la solution partagée par @Paddy était plus facile. Quoi qu'il en soit, beaucoup apprécié.