6xavier6
Messages postés51Date d'inscriptionjeudi 29 mars 2007StatutMembreDernière intervention 7 février 2020
-
17 juin 2009 à 11:02
6xavier6
Messages postés51Date d'inscriptionjeudi 29 mars 2007StatutMembreDernière intervention 7 février 2020
-
19 juin 2009 à 08:48
Bonjour,
Alors j'ai un problème avec une requête SQL,
au premier chargement de ma page la requête est exécuter correctement mais quand je la recharge,
la requête n'est pas bien exécuter.
Ce que dois faire ma page : - se connecter a la database et afficher sous forme de tableau les informations lu.
- devant chaque ligne, il y a un boutton qui permet de recharger la meme page en supprimant la ligne.
Il y a 2 requete SQL distincte : une requete pour laffichage executer au deux chargement de la page
une requete de suppression appeler uniquementy si l'utilisateur a cliquer sur le bouton
Problème rencontré apres avoir fait une suppression, la requete d'affichage ne marche pas, mon programme me retourne "ERREUR REQUETE : SELECT * FROM matable;"
Merci de votre aide
Xavier
Code de la page <?php
session_start();
include_once('admin.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<title>ADMINISTRATION</title>
</head>
6xavier6
Messages postés51Date d'inscriptionjeudi 29 mars 2007StatutMembreDernière intervention 7 février 2020 18 juin 2009 à 08:56
Alors, pour être puriste,
la vraie réponse au problème est :
il faut sortir les include_once des conditions et les laisser unitaire.
Soit "include_once('open_database.php');" en début de code et "include_once('close_database.php');" en fin de code.
Ce qui me fait dire que la database est pas ouverte ? j'ai changer mon code comme cité ci-dessus et tout fonctionne comme je le voulais.
Merci pour cette partie de code en tout cas
"echo "ERREUR REQUETE : ".$query."
".mysql_error();"
Je la trouve plus parlante quand l'erreur aparait.
Merci pour vos reponses
Xavier
OPEN_DATABASE <?php
$serveur = mysql_connect($Host, $User, $PassWord);
if ($serveur)
{
$db = mysql_select_db($NomBase, $serveur);
if (!$db)
{
die ('Impossible d\'utiliser la base : ' . mysql_error());
}
}
else
{
die('Non connecté : ' . mysql_error());
}
?>
citt
Messages postés209Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 9 février 20123 17 juin 2009 à 14:16
Remarque 1 :
n'utilise qu'une fois tes includes dans tous les cas tu va faire du SQL donc ca ne sert à rien des les loader deux fois lors de la suppression
D'ou viens $NomTable ??
a tu essayé de passer plutot en GET l'id à del ?
Citt_jr
Bats toi avec les meilleurs, crève avec le reste
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 17 juin 2009 à 18:16
Salut,
Tout d'abord ne valide pas une réponse si elle ne résous pas ton pb. Dans le cas contraire peu de personnes vont lire ton post.
Peut on connaitre le contenu de close_database.php et open_database.php ?
L'erreur provient du "include_once" qui comme son nom l'indique n'inclue qu'une seule fois. =>
Ca n'empêche que Cltt a raison, ça ne sert à rien de les mettre
Bon, je n'ai que parcouru le code, commence par remplacer :
echo "ERREUR REQUETE : ".$query;
=>
echo "ERREUR REQUETE : ".$query."
".mysql_error();
Quel est le message d'erreur affiché ?
Cordialement,
Kohntark -
Vous n’avez pas trouvé la réponse que vous recherchez ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 18 juin 2009 à 16:18
A voir le contenu des 2 fichiers c'est bien normal.
en réalité ton deuxième open_database ainsi que le deuxième close_database ne sont jamais appelé lorsque $_POST['supress'] existe. Ainsi la requête $query = 'SELECT * FROM '.$NomTable.';'; ne peut être exécutée.
2 petites remarques :
Sauf à travailler avec plusieurs serveurs de base de données mysql_close, et donc close_database, ne sert à rien, la connexion étant fermée automatiquement à la fin du script.
mysql_error() ne doit être présent que pour le débogguage sinon gard aux problèmes de sécurité !! En parlant de sécurité renseigne toi également sur mysql_real_escape_string, car en l'état actuel il est très simple de faire de l'injection et effacer totalement ta base de données.