Créer, modifier une tables dans ma base de données

Résolu
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 1 avril 2014 à 17:10
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 - 3 avril 2014 à 03:10
Bonjour,
voici ce que je veux faire :
quand l'utilisateur crée une matière alors :
1. on vérifie que la table moyenne existe dans la base de données.
2. si elle n'existe pas on la crée (la table moyenne)
3. mais si elle existe déjà, on ajoute simplement le nom de la matière postée
dans la table moyenne.

voici l'erreur affichée :
la recherche de la table dan sa bdd na pas abouti

voici mon code :
<?php
if (isset($_POST["valider"])) {
$groupe=trim($_POST["groupe"]);
$matiere=trim($_POST["matiere"]);
$coeff=trim($_POST["coeff"]);
$code=trim($_POST["code"]);
$sql = "SELECT code FROM matieres WHERE code='$code'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0) // l'url existe déjà, on affiche un message d'erreur
{
$msg = 'Désolé, mais ce nom existe déjà dans notre base.';
echo '<script>alert(\' '.$msg.' \');</script>';
}
else // L'url n'existe pas, on insère les informations du formulaire dans la table
{
if (empty($code)) {

$msg="<font color=red>Veuillez saisir le nom !!!!!!!!</font>";
}
else {
$sql="INSERT INTO matieres(id,groupe,matiere,coeff,code) VALUES('','".$groupe."','".$matiere."','".$coeff."','".$code."')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//creation de la table moyenne
//Vérification de l'existance de la tables
$q = mysql_query("SHOW TABLES FROM bdd_ecole WHERE TABLES= moyenne ")or die('la recherche de la table dan sl bdd na pa abouti');
while ($data = mysql_fetch_row($q)) {
//echo $data[0];
$r = $data[0];
if($r){
//ALTER TABLE 'table' ADD 'nom_champ' VARCHAR( 20 ) NOT NULL AFTER 'champs_precedant' ;
$resultat = mysql_query("ALTER moyenne table ADD ".$matiere." VARCHAR(150) NOT NULL ");
;
}else{
// création de vos tables
$resultat = mysql_query("CREATE TABLE moyenne(id int(11) NOT NULL auto_increment,".$matiere." varchar(150) NOT NULL default '',PRIMARY KEY (id)
)
");

if (!$resultat)
{
print("erreurs lors de la création des tables. Error: ".mysql_error())."<p>";
}
$msg = $matiere.'***ajoutée';
echo '<script>alert(\' '.$msg.' \');</script>';
}
}
}
}
}

2 réponses

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
Modifié par jordane45 le 1/04/2014 à 17:51
..... Dis voir..... tu as testé ta requête directement dans ta BDD ??

SHOW TABLES FROM bdd_ecole WHERE TABLES= moyenne 

Je pense (non.. je suis sûr..) que NON.. sinon tu aurais vite vu qu'elle n'était pas bonne....que le WHERE ne peut pas s'utiliser pour ce genre de requête....

NB: Sachant que ce n'est pas la première fois que je te fais cette remarque ( suggestion...critique... appelles ça comme tu veux... ^^ )

Donc.. la "bonne" syntaxe est :

 $strBddName = "bdd_ecole";
 $strTableName = " moyenne";
 $sql="SHOW TABLES FROM ".$strBddName."
  like '".$strTableName."' ";
 $resultat = mysql_query($sql)
   or die(' Erreur : '.$sql); 

// Et puis pour savoir si ta table existe..
// pas besoin de boucle... 
// juste vérifier le nombre de lignes retournées.
if(mysql_num_rows($resultat )==1){
  echo "<br> La table ".$strTableName ." existe ";

}else{

  echo "<br>La table ".$strTableName ." n'existe pas dans la Base ".$strBddName ;
}     
 


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
2 avril 2014 à 02:10
merci @jordane45 ça bien marché . mais je t 'assure que j'ai testé ta requête directement dans ta BDD mais c'est juste que je savais pas comment m'y prendre . sinon effectivement ça ma donné une erreur la bas.
rassure toi j'apprends beaucoup avec toi et merci une fois de plus encore.
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
3 avril 2014 à 03:10
Pour tes prochaines questions.. si tu rencontres un souci du même genre..
=> Si tu l'as testé dans la BDD :
1 - Tu ne nous donnes pas tout le code de ta page mais Juste la requête ( ça suffit pour trouver le problème)
2 - Tu nous indiques le message d'erreur rencontré.

@++
0
Rejoignez-nous