Page 1 sur 1

Suppression d'une entrée dans ma BDD

Posté : 09 févr. 2007, 16:57
par Luverger
Un autre défi ...

J'aimerais cette fois-ci pouvoir supprimer JUSTE UNE ENTREE dans ma base ...

Voici le code de ma page :

<?php require_once('../Connexions/ConnexionArchives.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "varchar":
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "Numaff";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "Client";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "Nomaff";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "Resprojet";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if ((isset($_POST['RefSUP'])) && ($_POST['RefSUP'] != "")) {
  $deleteSQL = sprintf("DELETE FROM Archives WHERE Numaff=%s",
                       GetSQLValueString($_POST['RefSUP'], "int"));

  mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
  $Result1 = mysql_query($deleteSQL, $ConnexionArchives) or die(mysql_error());

  $deleteGoTo = "../Resultat/ResultatRechercheArchives.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
?>
<?php require_once('../Connexions/ConnexionArchives.php'); ?>
<?php
$colClient_rsDossiers = "0";
if (isset($_GET['VARClient'])) {
  $colClient_rsDossiers = (get_magic_quotes_gpc()) ? $_GET['VARClient'] : addslashes($_GET['VARClient']);
}
		mysql_select_db($database_ConnexionArchives, $ConnexionArchives);
$query_rsDossiers = sprintf("SELECT Numaff, Client, Nomaff, Resprojet FROM Archives ORDER BY Numaff, Client, Nomaff, Resprojet", $colNumaff_rsDossiers, $colClient_rsDossiers, $colNomaff_rsDossiers, $colResprojet_rsDossiers);
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$row_rsDossiers = mysql_fetch_assoc($rsDossiers);
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);

$colNomaff_rsDossiers = "";
if (isset($_GET['VARNomaff'])) {
  $colNomaff_rsDossiers = (get_magic_quotes_gpc()) ? $_GET['VARNomaff'] : addslashes($_GET['VARNomaff']);
}
		mysql_select_db($database_ConnexionArchives);
$query_rsDossiers = sprintf("SELECT Numaff, Client, Nomaff, Resprojet FROM Archives ORDER BY Numaff, Client, Nomaff, Resprojet", $colNumaff_rsDossiers, $colClient_rsDossiers, $colNomaff_rsDossiers, $colResprojet_rsDossiers);
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$row_rsDossiers = mysql_fetch_assoc($rsDossiers);
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);

$colResprojet_rsDossiers = "0";
if (isset($_GET['VARResprojet'])) {
  $colResprojets_rsDossiers = (get_magic_quotes_gpc()) ? $_GET['VARResprojet'] : addslashes($_GET['VARResprojet']);
}
$colNumaff_rsDossiers = "0";
if (isset($_GET['VARNumaff'])) {
  $colNumaff_rsDossiers = (get_magic_quotes_gpc()) ? $_GET['VARNumaff'] : addslashes($_GET['VARNumaff']);
}
		mysql_select_db($database_ConnexionArchives);
$query_rsDossiers = sprintf("SELECT Numaff, Client, Nomaff, Resprojet FROM Archives ORDER BY Numaff, Client, Nomaff, Resprojet", $colNumaff_rsDossiers, $colClient_rsDossiers, $colNomaff_rsDossiers, $colResprojet_rsDossiers);
$rsDossiers = mysql_query($query_rsDossiers, $ConnexionArchives) or die(mysql_error());
$row_rsDossiers = mysql_fetch_assoc($rsDossiers);
$totalRows_rsDossiers = mysql_num_rows($rsDossiers);
?>
<html><!-- InstanceBegin template="/Templates/PageBiblio.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Suppression d'un dossier des archives</title>
<!-- InstanceEndEditable --><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>

<body bgcolor="#99CCFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<table width="804" height="270" align="center" cellspacing="0">
  <tr>
    <td width="33%" height="61" bgcolor="#999999"><div align="center">
        <p><strong></strong></p>
      </div>      
    </td>
    <td bgcolor="#999999"><div align="center"><strong><font color="#FFFFFF" size="6" face="Arial, Helvetica, sans-serif">BIBLIO
    </font></strong></div></td>
    <td valign="bottom" bgcolor="#999999"><div align="right"></div>      
    <div align="right"><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">v
    0.91</font></div></td>
  </tr>
  <tr bgcolor="#CCCCCC">
    <td width="33%" height="20"><div align="center"><a href="../index.htm"><font size="2"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif"><strong>RECHERCHE</strong></font></font></a></div></td>
    <td height="20"><div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong><a href="../Ajout/AccueilAjout.htm">AJOUT</a></strong></font></div>      <div align="center"></div></td>
    <td width="33%" height="20"><div align="center"><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"><strong><a href="../Listes/AccueilListes.php">LISTES</a></strong></font></div></td>
  </tr>
  <tr>
    <td height="58" colspan="3"><div align="center"><font size="6"><font face="Arial, Helvetica, sans-serif"></font></font>
      <p><font size="6"><!-- InstanceBeginEditable name="EditRegion1" -->
    <MARQUEE loop=5 scrolldelay=15>
    <font color="#FF0000" face="Arial, Helvetica, sans-serif"><u>SUPPRESSION D'UN DOSSIER DES ARCHIVES </u></font>
    </marquee><!-- InstanceEndEditable --></font></p>
      </div>      
    <div align="center"></div>      <div align="right"></div>      <table width="97%" height="43%" align="center">
        <tr>
          <td width="80%" height="34"><div align="center"><!-- InstanceBeginEditable name="EditRegion2" -->
              <form name="form1" method="post" action="">
                <p><font face="Arial, Helvetica, sans-serif">Veuillez confirmer
                    la suppression du <strong>DOSSIER</strong> : </font>
                  <input name="RefSUP" type="text" id="RefSUP" value="<?php echo $row_rsDossiers['Numaff']; ?>" size="5" readonly="true"> 
                  <input type="submit" name="Submit" value="Supprimer">
                </p>
              </form>              
              <p></p>
              <p></p>
              <table width="75%" border="1" bordercolor="#FF0000" bgcolor="#FFFFFF">
              <tr>
                <td width="80%"><div align="center">
                  <p align="center">&nbsp;</p>
                  <p align="center"><font size="6" face="Arial, Helvetica, sans-serif">Dossier
                    N&deg;</font><font size="2" face="Arial, Helvetica, sans-serif"> :<strong> <font size="6"><?php echo $row_rsDossiers['Numaff']; ?></font></strong></font></p>
                  <p align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong>&nbsp;&nbsp;</strong></font></p>
                  <table width="80%" bgcolor="#FFFFFF">
                    <tr valign="top">
                      <td height="39" colspan="2" bordercolor="0"><div align="left">
                        <hr>
</div>                        </td>
                      </tr>
                    <tr>
                      <td height="0"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">N&deg; affaire:</font></div></td>
                      <td width="320" height="25"><font size="2" face="Arial, Helvetica, sans-serif"><?php echo $row_rsDossiers['Numaff']; ?></font></td>
                      </tr>
                    <tr>
                      <td height="0"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Client:</font></div></td>
                      <td width="320" height="25"><font size="2" face="Arial, Helvetica, sans-serif"><?php echo $row_rsDossiers['Client']; ?></font></td>
                      </tr>
                    <tr>
                      <td height="0"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Nom affaire: </font></div></td>
                      <td width="320" height="25"><font size="2" face="Arial, Helvetica, sans-serif"><?php echo $row_rsDossiers['Nomaff']; ?></font></td>
                      </tr>
                    <tr>
                      <td><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Responsable projet: </font></div></td>
                      <td width="320"><p><font size="2" face="Arial, Helvetica, sans-serif"><?php echo $row_rsDossiers['Resprojet']; ?></font></p></td>
                      </tr>
                    <tr>
                      <td><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">&nbsp;</font></div></td>
                      <td>&nbsp;</td>
                      </tr>
                  </table>
                   
                  <p>&nbsp;</p>
                </div></td>
              </tr>
            </table>
            <p>&nbsp;</p>
            <!-- InstanceEndEditable --></div>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($rsDossiers);
?>
Le problème est qu'avec ce code il me supprime TOUTES LES ENTREES ....

Que dois modifier ???

Voilà l'erreur que j'obtiens:

Notice: Undefined variable: colNumaff_rsDossiers in c:\program files\easyphp1-8\www\archives\suppression\pagedetaildossiersup.php on line 51

Notice: Undefined variable: colNomaff_rsDossiers in c:\program files\easyphp1-8\www\archives\suppression\pagedetaildossiersup.php on line 51

Notice: Undefined variable: colResprojet_rsDossiers in c:\program files\easyphp1-8\www\archives\suppression\pagedetaildossiersup.php on line 51

Notice: Undefined variable: colNumaff_rsDossiers in c:\program files\easyphp1-8\www\archives\suppression\pagedetaildossiersup.php on line 61

Notice: Undefined variable: colResprojet_rsDossiers in c:\program files\easyphp1-8\www\archives\suppression\pagedetaildossiersup.php on line 61

Posté : 09 févr. 2007, 17:14
par Ryle
Actuellement, ton delete supprime tous les enregistrements pour lesquels le champ Numaff a pour valeur $_POST['RefSUP'], qui devrait vraissemblablement être un nombre ("int")

A noter que dant ta fonction, si cette valeur est vide, tu retourne une chaine :
case "int": 
      $theValue = ($theValue != "") ? intval($theValue) : "Client"; 
Affiches la requête et la valeur de $_POST['RefSUP'], tu verras peut être ce qui ne va pas :)


Quant au warning, il te dit que tes variables ligne 51 ne sont pas définies. Il te manque peut être des %s, %d, ... dans ton sprintf ? encore que ces valeurs ne servent à rien dans un select s'il n'y a pas de where....
...
sprintf("SELECT Numaff, Client, Nomaff, Resprojet FROM Archives ORDER BY Numaff, Client, Nomaff, Resprojet", $colNumaff_rsDossiers, $colClient_rsDossiers, $colNomaff_rsDossiers, $colResprojet_rsDossiers); 
...

Posté : 12 févr. 2007, 11:03
par Luverger
La ça devient trop compliqué ...

Je ne pige plus rien .... %s, %d .... Je ne connais pas encore bien ce language ... je suis débutant ....

Je vais y réfléchir encore un peu sinon tant pis ....

Merci de ton aide ....