Récupère le nom des base de donné [Résolu]

Signaler
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
-
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
-
Bonjour,
J'ai fait un formulaire pour ajouter des vidéo dans une base donne par utilisateur mais je voudrait les récupère dans une variable pour après l'echo dans le 'insert' mais je ne peut pas récupéré le nom des DB comme sur la page suivant l'indiquait
https://www.commentcamarche.net/faq/18077-oracle-afficher-le-nom-des-base-de-donnees

et cela ne fonctionne pas.

voici mn code :

<?php
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
require_once('config.php');
date_default_timezone_set('Europe/Paris');

// Récupération PROPRE des variables AVANT de les utiliser
// pour ça, j'utilise l'écriture ternaire ( sorte de IF/ELSE )
$DBchoo = !empty( $_POST['chooseDB']) ?  $_POST['chooseDB'] : NULL;
$nameEpi = !empty( $_POST['nameEpi']) ?  $_POST['nameEpi'] : NULL; 
$numEpi = !empty( $_POST['numEpi']) ?  $_POST['numEpi'] : NULL;
$linkEpi = !empty( $_POST['linkEpi']) ?  $_POST['linkEpi'] : NULL;

//recuperer les nom des base de donné
$DBl = mysqli_query($conn, "SELECT * FROM V$DATABASE");

// function pour verifier l'existance d'une DB
function checkDB ($DBchoo, $DBl){
	$checkDB = mysqli_query($conn, "SELECT * FROM `V$DATABASE` WHERE `$DBl`");
	if(!empty($checkDB)){
		$DBverif = $DBchoo;
	}
}

// ajout de l'epsiode 
function addEpi($nameEpi,$numEpi,$linkEpi){
  global $conn;
  $nameEpi = mysqli_real_escape_string($conn, $nameEpi); 
  $numEpi = mysqli_real_escape_string($conn, $numEpi);
  $linkEpi = mysqli_real_escape_string($conn, $linkEpi);
  $sql = "INSERT into `$DBverif` (epsiode, title, lien)
            VALUES ('$numEpi', '$nameEpi', '$linkEpi')";
  if (!mysqli_query($conn, $sql)) {
    printf("Message d'erreur : %s\n", mysqli_error($conn));
    return false;
  }else{
    return true; 
  }
   
}

//juste le temps des tests, pour voir si le formulaire s'envoie bien
echo "<br> ---> POST :";
var_dump($_POST);

//traitement du formulaire
if($nameEpi && $numEpi && $linkEpi){
	if( checkDB($DBverif, $DBl) ){
		$message = "Le nom de la Base de Donnée n'existe pas";
	}else{
		if( addEpi($nameEpi, $numEpi, $linkEpi)){
			$message = "Episode ajouter";
		}else{
			$message = "Erreur lors de l'insertion en BDD";
		}
	}
	
}
?>
<!DOCTYPE html>
<html>
  <head>
    <meta name="googlebot" content="noindex">
      <link rel="icon" type="images/png" sizes="512x512" href="android-chrome-512x512.png">
      <link rel="stylesheet" href="serie/allstyle.css">
      <link rel="stylesheet" href="style.css">
      <link rel="stylesheet" href="style1.css">
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Streawer</title>
  </head>
  <body style="background-color: #444444;">
    <!-- En-tête de la page-->
    <div class="entete" onclick="window.location.reload()">
        <img src="img/logo.png" id="logo" alt="Logo Streawer"/>
        <a href="main.php" id="nm" style="color: #4DB89A;"><h1 id="nom">Streawer</h1></a>
    </div>

    <form class="box" action="" method="post">
      <h1>Nouvelle episode</h1>
	  	<select name="chooseDB" id="chooseDB">
	  	<?php
			if(!empty($DBl)){
				echo '<option value="'.$DBl.'">'.$DBl.'</option>';
			}
		?>
	  	</select>
		<input type="text" class="box-input" name="nameEpi" placeholder="Nom de l'episode" required>
		<input type="text" class="box-input" name="numEpi" placeholder="Numero de l'epidode" required>
		<input type="text" class="box-input" name="linkEpi" placeholder="Lien de L'episode" required>
		<input type="submit" name="submit" value="Ajouter" class="box-button">
		<?php
		if (!empty($message)){
			echo '<p class="errorMessage">'.$message.'</p>';
		}
		?>
   </form>
    <script>
    $(document).keydown(function(e){
      if(e.which === 123){
         return false;
      }
    });
    </script>
  </body>
<?php include('footer.php'); ?>
</html>

3 réponses

Messages postés
32508
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 juillet 2021
7 826
Bonjour,

L'article auquel tu fais référence concerne une base Oracle. Tu as une base Oracle ou Mysql ???

En plus dans ton select, si tu avais une base Oracle,
"SELECT * FROM `V$DATABASE` WHERE `$DBl`" 
il manquerait quelque chose pour
WHERE colonne = valeur
.


Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1
j'ai une base mysql , je pensais pas qu'il y avait une difference.
Mais est ce qu'il existe quqelque chose dans le genre pour mysql ?
Messages postés
32508
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 juillet 2021
7 826 >
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021

j'ignore s'il y a un équivalent dans mysql
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1 >
Messages postés
32508
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
23 juillet 2021

je te remercie, je vais laisser la question pour voir si d'autre personne peuvent regler le probleme .
Messages postés
16417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 juillet 2021
877
bonjour,
peut-être ainsi:
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name = 'nomdeladb'
Messages postés
32
Date d'inscription
jeudi 3 juin 2021
Statut
Membre
Dernière intervention
15 juillet 2021
1
je viens de trouver se qu'il faut faire pour avoir ce que je voulais.
SELECT * FROM `TABLE_CONSTRAINTS`


Le code que vous m'avez donne yg_be est correct sauf que je me suis trompe de question en demandant d'afficher le nom des base de donné, c qui fonctionne avec votre code yg_be mais plutôt d'afficher le nom de table avec le code que j'ai mis au dessus.