8792 sujets

Développement web côté serveur, CMS

Boonjour à tous ,

Je voudrai pouvoir selectionné une table de ma base au moyen d'un menu déroulant puis le contenu s'affiche dans un cadre pour pouvoir vérifier avant de delete la base.

Mais voila ce code php ne fonctionne pas

<?
$host = "";
$user = "";
$pass = "";
$bdd = "";

// 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();

?>

Quelqu'un sais pourquoi ? Smiley eek

D'avance merci

diabolo
Bonsoir,

Pour exécuter une requête SQL, il faut utiliser la fonction mysql_query.

D'autre part :
-> "<?php" est préférable à "<?", qui est un short_tag "déprecié"
-> $_POST est préférable à $HTTP_POST_VARS
-> Tu as l'air d'avoir une table par mois. Ce n'est pas une organisation un peu spéciale ?
Salut ,

J'ai choisi une table par mois pour une facilité de comprehension pour les futurs utilisateurs qui mettrons eux mêmes à jour le contenu de la base. Le site que je prépare recense une douzaine d'association de médecin et ils aiment bien qu'en c'est clair de chez clair !

La solution à mon problème est la suivante :

$sql = 'SELECT * FROM '.$mois;

$res = mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo $val["date"]."<br>";
echo $val["titre"]."<br>";
echo "<hr>";
}

Avec ceci le contenu s'affiche j'ai la date et le titre de chaque séance du mois que je choisi à l'aide du menu déroulant.

Smiley fache Le hic maintenant c'est que je peux pas effacer ce contenu ! ce code ne fonctionne pas :


 mysql_query("DELETE FROM ".$mois." WHERE date='".$date."' and titre='".$titre."';");
 $result=mysql_query($query) or die ("la suppression des données est impossible");



Si quelqu'un sait pourquoi merci d'avance à lui pour son aide

diabolo Smiley cligne
Salut à toi diabolo6771.

Il est évident que le mysql_query($query) ne fonctionne pas puisque tu n'as pas définis la variable $query Smiley rolleyes


Erreur bête, comme souvent Smiley smile
même comme cela sa ne fonctionne pas :

 $mois = $_POST['mois'];
 $date = $_POST['date'];
 $titre = $_POST['titre'];

mysql_query("DELETE FROM " . $mois . " WHERE date = '" . $date . "' AND titre = '" . $titre . "'"); 

diabolo

  $delete = "DELETE FROM ".$mois." WHERE date = '".$date."' AND titre = ".$titre."";
  $requete = mysql_query($delete);
non réjouie trop tôt la page indiqué dans le header s'affiche, mais rien n'a bougé dans la base elle ne se vide pas !

désolé

Il existe pas de code simple qui permet de delete le contenu d'une table en selectionnant un champ de celle-ci ?
diabolo
Mets des guillemets simples aussi autour de $titre :

$delete = "DELETE FROM ".$mois." WHERE date = '".$date."' AND titre = '".$titre."'";
Il est probable que ça bloque au niveau du 'date', qui est un mot-clé réservé par MySQL (DATE c'est quand même un type de champ).
Essaye en remplaçant date par `date`

Sinon, j'espère que cette page n'est pas accessible au visiteur lambda ? Parce qu'il y a une énorme faille qui permettrait à n'importe qui de faire ce qu'il veut.

Enfin, met or die(mysql_error()); après le mysql_query() (à toujours faire d'ailleurs), ça t'informera pas mal sur la provenance de l'erreur

Si ça ne vient pas de ce que j'ai dit plus haut (ou pas seulement), ça peut venir du fait que $date ou $titre contiennent un guillemet simple '
Enfin, si ça n'est rien de tout ça tu peux toujours donner le type de ces deux champs.
a écrit :
C'est drôle, il n'y a personne pour dire qu'un select *, c'est mal ! (c)


l'utiliser systématiquement oui, mais si tu sélectionne réellemen tout (ce qui est souvent le cas sur des petits sites où tu récupère des articles ou autre), c'est nettement plus rapide que de précisé tous les champs. Encore plus que si on les précise dans le désordre.
solo a écrit :
Un select c'est male.


Oui mais non, faut pas mettre de e à la fin sauf si c'est un mal féminin...

Pis on a dit qu'il n'y avait que les débutants qui mettaient des "e" partout
Smiley murf
Modérateur
solo a écrit :

Un select c'est male.


Un select c'est femelle
Modifié par Merkel (08 Jul 2005 - 15:47)