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 :

Code : Tout sélectionner

echo $val["date"]."<br>";
permet de choisir ce que l'on veut afficher , cela évite d'afficher tout le contenu de la table comme lorsque l'on utilise :

Code : Tout sélectionner

select * from "nomDeLaTable"
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é
:cry:
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

:roll:

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