Erreur supression php/mysql

lili -  
avion-f16 Messages postés 20367 Statut Contributeur -
Bonjour,
j'ai créée une page qui récupére des données apartir de la bdd dans un tableau qui contient des colonnes pour chaque attribut en plus d'une collone qui contient un lien vers une pagge "supdept.php" pour supprimer l' enregistrement.quand j'exécute le code il m'affiche une erreure de syntaxe dans la ligne en gras merci pour votre aide.
page "departement.php"


<?php
$dept=$_GET['dept'];
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$result = mysql_query("SELECT id_dept,libel_dept from tab_departement ") or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF" align = "center" style="auto" >'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr >';
echo '<td bgcolor="#F19349" ><b><u>Département</u></b></td>';
echo '<td bgcolor="#F19349"><b><u>Modifier</u></b></td>';
echo '<td bgcolor="#F19349"><b><u>Supprimer</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#E2D8C6">'.$row['libel_dept'].'</td>';
echo '<td bgcolor="#E2D8C6"><img src="images/write.png" width="16" height="16" /></td>';
$id_dept=$row['id_dept'];
echo '<td bgcolor="#E2D8C6" ><a href=\"supdept.php?idASupprimer="."{$row['id_dept']}\"><img src="images/delete.png" width="16" height="16" /></a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>
page "supdept.php"


<?php
include 'connexion.php';
require("affichedept.php");

// suppression de l'email selectionné...
$idASupprimer = $_GET['idASupprimer'];
mysql_query("DELETE FROM tab_departement WHERE id='$idASupprimer' ");

// On renvoi vers le fichier voir.php3
header("location:affichedept.php");

// on ferme la connection...
mysql_close();
?>
A voir également:

7 réponses

avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
$req = mysql_query("SELECT libel_dept FROM tab_departement WHERE id_dept='$idASupprimer' "); 
?> 
<tr> 
<td width="138" height="36"> Nom Département</td> 
<td><input type="text" name="dept" size="30" value = <?php echo $req ;?>" ></td>
$req est une ressource renvoyée par mysql_query(), pas une chaine de caractère valant ton champ "libel_dept".
Il faut faire comme ceci :
$req = mysql_query();
$entree = mysql_fetch_assoc($req);
echo $entree['libel_dept'];
1
lili
 
slt,
merci bcp ca marche très bien maintenant
0
lili
 
svp mnt j'ai un formulaire qui perment d'ajouter une salle a la bdd,il contient une liste "département" qui se remplie apartir de la bdd,et une autre liste responsable qui se remplie aussi apartir de la bdd mon probleme c que je veux remplire la deuxieme liset en fonction de la premiere est ce que c possible??
voici mon code:
<table width="274" height="223" border="0" align="center" bgcolor="#E2D8C6">
<tr>
<td width="120" height="36">Nom</td>
<td width="144"><input type="text" name="nom" /></td>
</tr>
<tr>
<td height="35">Département</td>
<td><select name="dept" >
<?php
$req="SELECT * FROM tab_departement";
$res=mysql_query($req);
if( mysql_num_rows($res) > 0 ) {
while($row=mysql_fetch_row($res) ) {
echo"<option value=\"".$row[0]."\">".$row[1]."</option>";
}
} else {
// Pas d'entrées.
echo"<option value=\"\">Aucun département</option>";

}
?>

</select>

</td>
</tr>
<tr>
<td height="36">Type</td>
<td><select name="type" >
<option value="salle">Salle TP</option>
<option value="amphi">Amphi</option>
</select>
</td>
</tr>
<tr>
<td height="34">Responsable</td>
<td><select name="resp">
<?php
$req="SELECT * FROM tab_user where nature_user = '1' ";
$res=mysql_query($req);
if( mysql_num_rows($res) > 0 ) {
while($row=mysql_fetch_row($res) ) {
echo"<option value=\"".$row[0]."\">".$row[1]." ".$row[2]."</option>";
}
} else {
// Pas d'entrées.
echo"<option value=\"\">Aucun responsable</option>";

}
?>

</select></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Ajouter" value="Ajouter" /></td>
</tr>
</table>
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
echo '<td bgcolor="#E2D8C6" ><a href=\"supdept.php?idASupprimer="."{$row['id_dept']}\"><img src="images/delete.png" width="16" height="16" /></a></td>';
Pourquoi échappes-tu les guillemets doubles alors que tu mets ta chaine entre guillemets simples et d'où viennent les accolades ?
echo '<td style="background-color:#E2D8C6"><a href="supdept.php?idASupprimer='.$row['id_dept'].'"><img src="images/delete.png" alt="" style="width:16px; height:16px;" /></a></td>';
0
lili
 
merci infiniment;
maintenant la page s 'affiche sans aucune erreur mai quand je clique sur supprimer ca ne donne rien
merci de me répondre
0
lili
 
merci avion-f16 sayé ca marche cété une erre au niveau du nom d'un attribut
merci encore une fois
0
lili
 
svp j ai un autre problème, dans ma page qui affiche les enregistrements (départements)j ai une colonne modifier,en cliquant dessus je veux que la page de modification s'affiche et que dans ma zone de texte (nom département)qui se trouve dans cette page s'affiche le nom que l utilisateur veut supprimer ,bon il ya des erreur au niveau de la page modifierdept svp aider moi:
page "affichedept"
<div id="Layer2"> <?php
$dept=$_GET['dept'];
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$result = mysql_query("SELECT id_dept,libel_dept from tab_departement ") or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF" align = "center" style="auto" >'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr >';
echo '<td bgcolor="#F19349" ><b><u>Département</u></b></td>';
echo '<td bgcolor="#F19349"><b><u>Modifier</u></b></td>';
echo '<td bgcolor="#F19349"><b><u>Supprimer</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
$id_dept=$row['id_dept'];
echo '<tr>';
echo '<td bgcolor="#E2D8C6">'.$row['libel_dept'].'</td>';
echo '<td style="background-color:#E2D8C6"><a href="modifierdept.php?idASupprimer='.$row['id_dept'].'"><img src="images/write.png" width="16" height="16" /></a></td>';

echo '<td style="background-color:#E2D8C6"><a href="supdept.php?idASupprimer='.$row['id_dept'].'"><img src="images/delete.png" alt="" style="width:16px; height:16px;" /></a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>


page "modifierdept"

<?php include 'connexion.php';
//require("affichedept.php");
$idASupprimer = $_GET['idASupprimer'];
$req = mysql_query("SELECT libel_dept FROM tab_departement WHERE id_dept='$idASupprimer' ");
?>
<tr>
<td width="138" height="36"> Nom Département</td>
<td><input type="text" name="dept" size="30" value = <?php echo $req ;?>" ></td>

</tr>

<tr>
<td colspan="2" align="center"><input type="submit" name="modifier" value="Modifier" /></td>
</tr>


<?php
if(isset($_POST['dept'])){
$dept=$_POST['dept'];
mysql_query("update tab_departement set libel_dept='$dept' where id_dept='$idASupprimer'");
header("location:affichedept.php");
mysql_close();
}
?>
0
lili > lili
 
la modification s'effectue et tt mai tjr dans la zone de texte il m affiche le mot "resources" je sai pa pk
c un prb au niveau de l 'affichage ds la zone de texte
merci
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Il faut utiliser AJAX.
http://www.siteduzero.com/tutoriel-3-4745-ajax-et-l-echange-de-donnees-en-javascript.html
https://siddh.developpez.com/articles/ajax/
0
lili
 
salut,
dans un formulaire de modification,j ai mis le code suivant , et ca me donne une erreur que j'arrive pas avoir
au niveau de la deriniére ligne:
<?php

if(isset($_POST['nom']) and !empty($_POST['prenom']) and isset($_POST['mail']) and isset($_POST['adresse']) and isset($_POST['tel']) and isset($_POST['dept']) and isset($_POST['login']) and isset($_POST['pass']))
{
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$mail=$_POST['mail'];
$adresse=$_POST['adresse'];
$tel=$_POST['tel'];
$dept=$_POST['dept'];
$login=$_POST['login'];
$pass=$_POST['pass'];
mysql_query("update tab_user set nom_user='$nom',prenom_user='$prenom',email_user='$mail',adresse_user='$adresse',tel_user='$tel',departement='$dept',login_user='$login',pass_user='$pass' where id_dept='$idASupprimer' and nature_user= 1");
header("location:afficheresponsable.php");
mysql_close();
}
?>
0
graffx Messages postés 7513 Statut Contributeur 1 975
 
et c' est quoi cette erreur? soyez precis bon sang
0
lili
 
voici l'erreur,

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\gestion absences\modifierresp.php:141) in C:\wamp\www\gestion absences\modifierresp.php on line 156

pour moi line 156 c mysql_close();
merci
0
lili
 
la requete est bien exécutée ,les données sont modifiés dans la bdd mai il m affiche tjr le warning et ne retourne pas vers la page afficheresponsable.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
header() ne peut pas être utilisée lorsque les entêtes HTTP sont déjà envoyées.
0
lili
 
et quelle est la solution donc?
pourtant j'ai fait le meme code dans une autre page et ca marche bien
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Pas caractère (et espace) avant "<?php" et aucun echo avant header().
0
lili
 
j ai pa d espace avant <?php ni echo dans mon code
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
"<?php" doit être la première ligne de ton fichier avec ton éditeur (bloc-notes, notepad++, ...).
Et aucun caractère ni espace avant.
0