Erreur supression php/mysql

lili -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
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();
?>
Configuration: Windows XP
Firefox 3.5.7

7 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    $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
    1. lili
       
      slt,
      merci bcp ca marche très bien maintenant
      0
    2. 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
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
    1. 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
    2. lili
       
      merci avion-f16 sayé ca marche cété une erre au niveau du nom d'un attribut
      merci encore une fois
      0
    3. 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
      1. 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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
    1. 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
  4. graffx Messages postés 120 Date d'inscription   Statut Contributeur Dernière intervention   2 031
     
    et c' est quoi cette erreur? soyez precis bon sang
    0
    1. 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
    2. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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