Page 1 sur 2
base de donnée et menu déroulant
Posté : 20 juin 2005, 11:35
par diabolo
Bonjour à tous,
J'ai créé une base de donnée comportant 12 tables 1 pour chaque mois de l'année.
J'ai ensuite créé un menu déroulant pour pouvoir sélectionnée le mois que je voudrais voir affiché sur ma page.
Pour l'insertion de donnée dans ma base pas de problème, mais pour récupérer les donnée sa ne fonctionne pas, quelqu'un pourrais me dire ce qui ne fonctionne pas dans mon code ?
Code : Tout sélectionner
<?
$host = "";
$user = "";
$pass = "";
$bdd = "f";
// connection base de données
@mysql_connect($host, $user, $pass) or die ("Impossible de se connecter à la base de donnée");
//selection de la base
@mysql_select_db($bdd) or die ("Impossible de se connecter à la base");
$mois = $HTTP_POST_VARS["mois"];
$sql = 'SELECT * FROM '.$mois;
echo $sql;
mysql_close();
?>
D'avance merci ,
diabolo
Posté : 20 juin 2005, 11:37
par zeus
Déjà, je te conseille d'enlever les @ car ça masque les erreurs et à la vue de tes identifiants de connexions qui sont tous = "", je pense que tu n'arrives pas à te connecter à ta bdd
Tu peut mettre des @ quand ton site est en ligne mais pas en développement vu que tu DOIT voir les erreurs pour les traiter
Posté : 20 juin 2005, 11:56
par diabolo
Salut Zeus,
Les identifiants sont en effet vide car sa ne sert à rien de mettre mes mot de passe à la vue de tout le monde.
Pour les @ c'est vrai tu as raison sa masque quelques erreurs !
Mais j'ai la solution et je vais la donnée pour ceux que sa pourrais intéresser. Il faut rajouter ceci :
Code : Tout sélectionner
$sql = 'SELECT * FROM '.$mois;
// echo $sql;
$res = mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo $val["date"]."<br>";
}
Cette ligne :
permet de choisir ce que l'on veut afficher , cela évite d'afficher tout le contenu de la table comme lorsque l'on utilise :
diabolo
Posté : 20 juin 2005, 12:07
par zeus
OK, je croyais que c'était ton script qui fonctionnais avec des identifiants vides
Posté : 20 juin 2005, 15:38
par diabolo
Pourquoi est ce que cette requête ne fonctionne pas ?
Problème de syntaxe mais où ?
Code : Tout sélectionner
//suppresion des données dans la base
$mois = $_POST['mois'];
$date = $_POST['date'];
$titre = $_POST['titre'];
mysql_query("DELETE FROM '.$mois' WHERE 'date'='.$date' and 'titre'='.$titre';");
$result=mysql_query($query) or die ("la suppression des données est impossible");
header("location:confirmationsuppresion.php");
Merci pour votre aide
diabolo
Posté : 20 juin 2005, 15:43
par zeus
- Il ne faut pas mettre de ' autour des noms de colonnes
- Il faut un point de CHAQUE côté de $mois
- Il faut utiliser les mêmes caractères en entourant la chaines qu'en la découpant " ou ' mais pas les 2
mysql_query("DELETE FROM ".$mois." WHERE date='".$date."' and titre='".$titre."';");
Posté : 20 juin 2005, 15:52
par diabolo
Mes erreurs de syntaxes viennent de ce que je les recopie directement de "Myadmin" et que dans ce programme même en cliquant sur source php la syntaxe n'est pas juste.
En tout cas elle fonctionne pas ! J'ai créer un formulaire pour inserer du contenu dans ma base, un autre pour afficher ce contenu et un troisième pour selectionne le contenu et l'effacer et dans les 3 cas la syntaxe proposé par phpmyadmin était fausse !!
diabolo
Posté : 20 juin 2005, 16:01
par zeus
Tu la sélectionne où ?
parce que SELECT * FROM '.$mois', phpMyAdmin ne sait pas le faire
Posté : 20 juin 2005, 16:09
par diabolo
Et bien je selectionne ma table
je clic sur
afficher pour voir son contenu.
je sélectionne le contenu que je veux effacer je clic sur
row delete enfin je clic sur
créer source php.
Après je recopie le code
diabolo
Posté : 20 juin 2005, 16:13
par zeus
Je savais pas qu'il déconnait si on faisait ça ...
Et la requête que je t'ai donné fonctionne ?
Posté : 20 juin 2005, 16:31
par Invité
non " la suppression des données est impossible"
diabolo
Posté : 20 juin 2005, 16:54
par zeus
Je viens de voir une erreur de syntaxe
si tes champs date et titre ne sont pas des entiers, il faut utiliser LIKE et non pas =
mysql_query("DELETE FROM ".$mois." WHERE date LIKE '".$date."' and LIKE ='".$titre."';");
Posté : 20 juin 2005, 17:07
par Invité
non désolé la suppression des données est toujours impossible
diabolo
Posté : 20 juin 2005, 17:24
par zeus
Fait
echo "DELETE FROM ".$mois." WHERE date LIKE '".$date."' and LIKE ='".$titre."';";
Et post moi le résultat
Posté : 20 juin 2005, 17:35
par Invité
J'ai fais un essai avec le mois de Mai, voici le résultat
Code : Tout sélectionner
DELETE FROM mai WHERE date LIKE '25.05.2005' and LIKE ='ESSAI 2';la suppression des données est impossible.
diabolo