PHP/MSSQL: réaffichage contenu tableau sur page PHP

PHP/MSSQL: réaffichage contenu tableau sur page PHP - PHP - Programmation

Marsh Posté le 19-07-2006 à 13:43:36    

Bonjour à tous,
Coucou à Berceker United
 
CONFIG:
*Serveur A: Intranet
OS Win 2000 serveur SP4
Mysql/Apache/Php via EasyPhp
 
*Serveur B: MSSQL Serv 2000
OS Win 2000 serveur SP4
 
ETAPE TEST SUR PAGE PHP:
1)-Connexion sur Basedonnee                                                                                            - OK
2)-Via Formulaire: écriture dans table base donnee                                                                - OK
3)-Affichage dans tableau sur page php des infos saisie dans base donnee                                 - OK
4)-Ajout sur Page PHP, une liste déroulante contenant les IDs des infos saisies dans base donnee  - OK
5)-Sélection via liste, num ID, afin de supprimer dans la base donnee, les infos de la ligne             - OK
6)-Simultanément de la suppression dans base de donnee, sur page Php, je voudrais que la ligne   - ER
   du tableau soit supprimée. Je le vois que si j'actualise page PHP.  
   Sinon si je rappelle l'affichage de mon tableau après avoir fait un DELETE FROM c'est OK
 
QUESTION:
Comment dois-je procéder pour que sur ma page PHP, dans l'affichage de mon tableau après avoir  
fait mon DELETE FROM, la ligne de mon tableau ne s'affiche plus ?
 
CODE: sur page PHP
===>>>J'AI ENLEVER LES BORNES HTML ET PHP
######################
##### DEB CODE #######
######################
DEB BornePHP  
 $server="xx.xx.xx.xx";  
 $username="xx";  
 $password="xx";
 $connect = mssql_connect ("$server","$username","$password" ) || die ("===>>> Connexion impossible au serveur" );
 mssql_select_db("NOMEMAIL" )                                  || die ("===>>> Connexion impossible à la base de données" );
 
 $ID="";
 if(!empty($_POST["ID"]))
    $ID=$_POST["ID"];
 
 $nom="";  
 if(!empty($_POST["nom"]))
    $nom=addslashes($_POST["nom"]);
 
 $email="";
 if(!empty($_POST["email"]))
   $email=$_POST["email"];
   
 $message="";
 
 if($email)  
 {
     $table="TESTNOMEMAIL";
     $query = "INSERT INTO $table(ID,nom,email)";
     $query .= " VALUES('$ID','$nom','$email')";  
     $result = mssql_query($query);
 }  
FIN BornePHP
 
DEB Borne HTML
 HEAD
  TITLEExempleTITLE
     
     script language="JavaScript"
     
      function verif(email)  
         {  
            var arobase = email.indexOf("@" )
            var point = email.lastIndexOf("." )
            if((arobase < 3) || (point + 2 > email.length) || (point < arobase+3))
                return false
            return true
           }
           
           function test(ID,nom,mail)  
           {
            if(ID.value=="" ) { alert('ID requis !')
               ID.focus();return false }
            if(nom.value=="" ) { alert('Nom requis !')
               nom.focus();return false }
            if(!verif(mail.value)) { alert('Email invalide !')
               mail.focus();return false }
            return true
           }
           
          script
     
     
     
 HEAD
 BODY bgcolor="#0066FF"
  <p align="center"><b><font color="#CCFF33" size="5">Liste Nom / Adreese E-Mail: </font></b></p>
   
  <center>
DEB BornePHP  
 echo $message;  
FIN BornePHP
   
     <form method="post" action="<? echo $URL; ?>" onSubmit="return test(this.ID,this.nom,this.email)">
              <table BORDER=1>
              <tr>
               <td>ID</td>
               <td><input type="text" name="ID"></td>
               <td>Nom</td>
               <td><input type="text" name="nom"></td>
               <td>E-mail</td>
               <td><input type="text" name="email"></td>
           </tr>
           <tr>
               <th colspan=6>
                  <input type="Submit" value="Ajouter"></th>
              </tr>
           </table>
        </form>
   
  <table ALIGN=CENTER BORDER=3 CELLSPACING=2 CELLPADDING=1 width="605" height="146">
   <TR>
    <TH ALIGN=CENTER>ID:</TH>
    <TH ALIGN=CENTER>NOM:</TH>
    <TH ALIGN=CENTER>EMAIL:</TH>
   </TR>
DEB BornePHP
    $requete="select ID, nom, email from TESTNOMEMAIL where ID between 1 and 100";  
    $resultat = mssql_query($requete) or die ("===>>> Erreur SQL" );
    while ( list( $ID, $nom, $email ) = mssql_fetch_row($resultat))
    {
     $bgcolor="bgcolor=#cccccc";
     print ("<tr>\n".
     " <td $bgcolor ALIGN=CENTER>$ID</td>\n".
     " <td $bgcolor ALIGN=CENTER>$nom</td>\n".
     " <td $bgcolor ALIGN=CENTER>$email</td>\n".
     "</tr>\n" );
    }
  echo "</table>";
 
 $resultat_ligne = mssql_query("select * from TESTNOMEMAIL " ) or die ("===>>> Erreur SQL" );
 $totalFilm = mssql_num_rows($resultat_ligne);
 
FIN BornePHP
 
  <form name="myform" method="post" action="<? echo $URL; ?>">
    <table>
    <tr>
             <td align=center>
              SUPPRESSION DE LIGNE:
             </td>
     </tr>
    <tr>
             <td  align=center>
    Veuillez sélectionner un nom afin de supprimer une ligne:  
    <select name="liste[]">
      <option selected>-- Veuillez choisir --</option>
DEB BornePHP  
       while ($val = mssql_fetch_array($resultat_ligne))  
       {  
FIN BornePHP
           <option>
DEB BornePHP
            echo $val["ID"];  
FIN BornePHP
           </option>          
DEB BornePHP      $Flag=1;  
       }    
FIN BornePHP
     </select>
     , puis cliquez sur la case "Suppression Ligne"
     </td>
     </tr>
     <br>
     <tr>
             <td align=center><br>
     <input type="Submit" value="Suppression Ligne">
  </td>
  </tr>
  </table>
  </form>
DEB BornePHP  
 for ($i=0; $i<count($liste); $i++)
 {
  $NumLigne = $liste[$i];  
 }
 echo "Numéro de ligne est: ".$NumLigne;
 
 
 $requeteBISBIS="delete from TESTNOMEMAIL where ID='$NumLigne'";
 $resultatSUPRLIGNE = mssql_query($requeteBISBIS) or die ("===>>> Erreur SQL" );
 
 $resultat_ligne = mssql_query("select * from TESTNOMEMAIL " ) or die ("===>>> Erreur SQL" );
 $totalFilm = mssql_num_rows($resultat_ligne);
 
 mssql_close();
 echo "<p align=center><u><i><font color=white><b> Nombre d'adresses E-Mail: $totalFilm</b></font></i></u></p>";
 echo "body html";
 
 
 //phpinfo();
FIN BornePHP
######################
##### FIN CODE #######
######################
 
Merci d'avance
Au revoir et bonne journée
Bien à vous

Reply

Marsh Posté le 19-07-2006 à 13:43:36   

Reply

Marsh Posté le 19-07-2006 à 13:48:57    

je vais résumer ton problème comme ça:
1- tu fais un select, tu affiches le résultat dans une table
2- tu fais un delete ensuite
3- tu es surpris que l'élement supprimé en 2 apparaisse dans le tableau généré en 1
c'est ça???

Reply

Marsh Posté le 19-07-2006 à 14:01:35    

Bonjour anapajari,
Tout d'abord merci de t'interresser à mon problème.
Pas tout à fait !!!
Grosso modo voilà comment ça se presente sur ma page php:
Formulaire de sasie: ID|Nom|AdresseMail
                             Bouton validation
 
Tableau avec colonne: ID|Nom|AdresseMail
ligne affiche Bd           1  |aa  |aa.aa@aa.fr
ligne affiche Bd           2  |bb  |bb.bb@bb.fr
(Au fur et à mesure que je saisie via mon formulaire cela s'incrémente dynamiquement dans mon tableau sur ma page html).
 
Liste déroulate contenant les ID des lignes à supprimer récupérées dans ma bd.                       Liste déroulante
                               Bouton Validation
 
Ce que j'arrive à faire c'est sélectionner un ID, ensuite quand je valide ma sélection de liste, cela me supprime bien ma ligne dans ma bd.
Par contre cela ne me réactualise pas mon tableau avec la ligne supprimée en moins. Et c'est que je voudrais faire !!!!
 
Merci d'avance
Bien toi

Reply

Marsh Posté le 19-07-2006 à 14:30:53    

bouillehpras > Si tu veux que la supression soit visible dans le tableau, alors il faut faire la supression avant de récupérer les données du tableau.
 
PS : Mets le code de ton premier message entre [ cpp ] [ /cpp ] (sans les espaces) ca rendra ton code plus lisible. Là, j'ai pas le temps d'analyser ton texte pour trouver les débuts et fin de chaque morceau.

Reply

Marsh Posté le 19-07-2006 à 14:43:54    

Bonjour à toi omega2
Tout d'abord merci de t'interresser à mon problème.
Voici le code avec les balises !!!
CODE:
<?php  
 $server="xx.xx.xx.xx";  
 $username="xx";  
 $password="xx";  
 $connect = mssql_connect ("$server","$username","$password" ) || die ("===>>> Connexion impossible au serveur" );  
 mssql_select_db("NOMEMAIL" )                                  || die ("===>>> Connexion impossible à la base de données" );  
 
 $ID="";  
 if(!empty($_POST["ID"]))  
    $ID=$_POST["ID"];  
   
 $nom="";  
 if(!empty($_POST["nom"]))  
    $nom=addslashes($_POST["nom"]);  
   
 $email="";  
 if(!empty($_POST["email"]))  
   $email=$_POST["email"];  
   
 $message="";  
   
 if($email)  
 {  
     $table="TESTNOMEMAIL";  
     $query = "INSERT INTO $table(ID,nom,email)";  
     $query .= " VALUES('$ID','$nom','$email')";  
     $result = mssql_query($query);  
 }  
?>  
 
<HTML>  
 <HEAD>  
  <TITLE>Exemple</TITLE>  
     
     <script language="JavaScript">  
       
      function verif(email)  
         {  
            var arobase = email.indexOf("@" )  
            var point = email.lastIndexOf("." )  
            if((arobase < 3) || (point + 2 > email.length) || (point < arobase+3))  
                return false  
            return true  
           }  
           
           function test(ID,nom,mail)  
           {  
            if(ID.value=="" ) { alert('ID requis !')  
               ID.focus();return false }  
            if(nom.value=="" ) { alert('Nom requis !')  
               nom.focus();return false }  
            if(!verif(mail.value)) { alert('Email invalide !')  
               mail.focus();return false }  
            return true  
           }  
           
          </script>  
 </HEAD>  
 <BODY bgcolor="#0066FF">  
  <p align="center"><b><font color="#CCFF33" size="5">Liste Nom / Adreese E-Mail: </font></b></p>  
   
  <center>  
<?php  
 echo $message;  
?>  
   
     <form method="post" action="<? echo $URL; ?>" onSubmit="return test(this.ID,this.nom,this.email)">  
              <table BORDER=1>  
              <tr>  
               <td>ID</td>  
               <td><input type="text" name="ID"></td>  
               <td>Nom</td>  
               <td><input type="text" name="nom"></td>  
               <td>E-mail</td>  
               <td><input type="text" name="email"></td>  
           </tr>  
           <tr>  
               <th colspan=6>  
                  <input type="Submit" value="Ajouter"></th>  
              </tr>  
           </table>  
        </form>  
   
  <table ALIGN=CENTER BORDER=3 CELLSPACING=2 CELLPADDING=1 width="605" height="146">  
   <TR>  
    <TH ALIGN=CENTER>ID:</TH>  
    <TH ALIGN=CENTER>NOM:</TH>  
    <TH ALIGN=CENTER>EMAIL:</TH>  
   </TR>  
<?php  
    $requete="select ID, nom, email from TESTNOMEMAIL where ID between 1 and 100";  
    $resultat = mssql_query($requete) or die ("===>>> Erreur SQL" );  
    while ( list( $ID, $nom, $email ) = mssql_fetch_row($resultat))  
    {  
     $bgcolor="bgcolor=#cccccc";  
     print ("<tr>\n".  
     " <td $bgcolor ALIGN=CENTER>$ID</td>\n".  
     " <td $bgcolor ALIGN=CENTER>$nom</td>\n".  
     " <td $bgcolor ALIGN=CENTER>$email</td>\n".  
     "</tr>\n" );  
    }  
  echo "</table>";  
 
 $resultat_ligne = mssql_query("select * from TESTNOMEMAIL " ) or die ("===>>> Erreur SQL" );  
 $totalFilm = mssql_num_rows($resultat_ligne);  
 
?>  
 
  <form name="myform" method="post" action="<? echo $URL; ?>">  
    <table>  
    <tr>  
             <td align=center>  
              SUPPRESSION DE LIGNE:  
             </td>  
     </tr>  
    <tr>  
             <td  align=center>  
    Veuillez sélectionner un nom afin de supprimer une ligne:  
    <select name="liste[]">  
      <option selected>-- Veuillez choisir --</option>  
<?PHP  
       while ($val = mssql_fetch_array($resultat_ligne))  
       {  
?>  
           <option>  
<?PHP  
            echo $val["ID"];  
?>  
           </option>            
<?PHP      $Flag=1;  
       }      
?>  
     </select>  
     , puis cliquez sur la case "Suppression Ligne"  
     </td>  
     </tr>  
     <br>  
     <tr>  
             <td align=center><br>  
     <input type="Submit" value="Suppression Ligne">  
  </td>  
  </tr>  
  </table>  
  </form>  
<?PHP    
 for ($i=0; $i<count($liste); $i++)  
 {  
  $NumLigne = $liste[$i];  
 }  
 echo "Numéro de ligne est: ".$NumLigne;  
 
 
 $requeteBISBIS="delete from TESTNOMEMAIL where ID='$NumLigne'";  
 $resultatSUPRLIGNE = mssql_query($requeteBISBIS) or die ("===>>> Erreur SQL" );  
 
 $resultat_ligne = mssql_query("select * from TESTNOMEMAIL " ) or die ("===>>> Erreur SQL" );  
 $totalFilm = mssql_num_rows($resultat_ligne);  
 
 mssql_close();  
 echo "<p align=center><u><i><font color=white><b> Nombre d'adresses E-Mail: $totalFilm</b></font></i></u></p>";  
 echo "</body></html>";  
   
 //phpinfo();  
?>  
 
Merci d'avance  
Bien toi  

Reply

Marsh Posté le 19-07-2006 à 14:56:04    

nan nan nan il faut que tu ecrive:
[cpépé] ... ton code au milieu ...[/cpépé] ( avec p à la place de "pé" => cpp)
Maintenant comme te l'a dit Omega2 ( bon j'avais espéré que cela était assez clair dans mon message, apparement non):

Citation :

Si tu veux que la supression soit visible dans le tableau, alors il faut faire la supression avant de récupérer les données du tableau.


Il faut donc faire ton delete AVANT ton select

Reply

Marsh Posté le 19-07-2006 à 15:41:16    

Tu effectues le traitement de ton formulaire dans une autre page (mettons traitement.php) et tu renvoies dans la page de ton tableau avec un header.
 
Dans le pire des cas, tu fais un :
 

Code :
  1. <meta http-equiv="refresh" content="0;URL=mapage.php">


 
dans ta fonction d'effacement.  
 
(Ca actualise la page tout seul comme un grand, pas besoin d'appuyer sur F5)
 
 
Mais bon... c'est barbare.  :ange:


Message édité par Daelith le 19-07-2006 à 15:44:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed