Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2108 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  problème de boucle avec update.........(résolu)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de boucle avec update.........(résolu)

n°191976
mecano1
Posté le 08-08-2002 à 12:10:34  profilanswer
 

re-re-salut, décidement je me débrouille mal, j'ai sans arret besoin de vous.
 
Je fait un script de petites annonces, et je voudrais qu'il supprime automatiquement les annonces de + de 60 jours.
 
pour le moment j'essai de remplir un champ que j'ai appellé "dif_jour" avec la différence des jours entre la date d'entrée et la date actuelle.
Le nombre de jours s'appelle "$jour[0]" et j'arrive à l'afficher dans chaque message, par exemple le 1er message a 31 jours et le 2eme 61 jours.
Le problème est qu'en utilisant la fonction update à l'interieur de WHILE, il me rempli tous les champs dif_jour avec 61 et ne tiens pas compte des autres.
 
Voici le bout de code
 
// variable qui contient la différence des 2 dates
 
$jour_affichage=mysql_query("select to_days(now()) - to_days(date) from annonces" );
 
//si le nombre de ligne de résultat>0 alors afficher les résultats un par un ainsi que le nombre de jours écoulés
 
if ($lignes!=0) {
while ($rows = mysql_fetch_array($result) and $jour = mysql_fetch_array($jour_affichage))
          {
//met à jour le champ dif_jour pour chaque enregistrement
 
mysql_query("update annonces SET dif_jour = $jour[0]" );
   
// affichage du tableau des annonces
   
echo ("<table border='0' cellpadding='2' cellspacing='2' width='70%' BGCOLOR='#454545'>
   <tr BGCOLOR='#000000'>
    <td>
     <table border='0' cellpadding='0' cellspacing='0' width='100%'>
      <tr>
       <td><b><FONT COLOR='#FF6600'>$rows[1]</FONT></b></td>
       <td align='right'>$rows[7]</td>
       
       <!-- comptage du nombre de jour d'affichage et là ca fonctionne-->
       
       
       <TD> déjà $jour[0] jours</TD>
       
      </tr>
     </table>
    </td>
   </tr>
   <tr>
    <td><B>$rows[4]</B></td>
   </tr>
   <tr>
    <td>
     <table border='0' cellpadding='0' cellspacing='0' width='100%'>
      <tr>
       <td><B><FONT COLOR='#0000FF'>Email:  </B></FONT><a href='mailto:$rows[3]'>$rows[3]</a></td>
       <td align='right'>" ); if ($rows[6]!=0) {echo"<B><FONT COLOR='#0000FF'>Tel:  </FONT>$rows[6]</B>";}
       echo ("</td>
      </tr>
     </table>
    </td>
   </tr>
  </table>
<br>
" );
}
echo "</tr></table>";


Message édité par mecano1 le 08-08-2002 à 14:39:00
mood
Publicité
Posté le 08-08-2002 à 12:10:34  profilanswer
 

n°192032
mahu le ma​lin
Posté le 08-08-2002 à 13:47:30  profilanswer
 

Hoy hoy !!
 
j'ai pas tout lu mais pk n'utilises-tu pas :


UPDATE tabase SET dif_jour = to_days(NOW() - date)


 
de la même facon :


DELETE FROM tabase WHERE to_days(NOW() - date) > 60


 
puis tu fais ton SELECT ....


---------------
JeuxVideo.Records.Mame
n°192053
mecano1
Posté le 08-08-2002 à 14:27:19  profilanswer
 

Je viens d'essayer ce que tu m'a donné, j'ai donc mis à l'interieur de while la commande update, mais il me rempli tous les champs dif_jour avec 0 alors que j'ai un enregistrement avec 31 jours et un autre avec 61 jours de différence
 
 
voilà le script que j'ai modifié:
 
 
if ($lignes!=0) {
while ($rows = mysql_fetch_array($result))
          {
 // mise à jour du champ dif_jour
   
mysql_query("UPDATE annonces SET dif_jour = to_days(NOW() - date)" );
 
   
echo ("<table border='0' cellpadding='2' cellspacing='2' width='70%' BGCOLOR='#454545'>
   <tr BGCOLOR='#000000'>
    <td>
     <table border='0' cellpadding='0' cellspacing='0' width='100%'>
      <tr>
       <td><b><FONT COLOR='#FF6600'>$rows[1]</FONT></b></td>
       <td align='right'>$rows[7]</td>
      </tr>
     </table>
    </td>
   </tr>
   <tr>
    <td><B>$rows[4]</B></td>
   </tr>
   <tr>
    <td>
     <table border='0' cellpadding='0' cellspacing='0' width='100%'>
      <tr>
       <td><B><FONT COLOR='#0000FF'>Email:  </B></FONT><a href='mailto:$rows[3]'>$rows[3]</a></td>
       <td align='right'>" ); if ($rows[6]!=0) {echo"<B><FONT COLOR='#0000FF'>Tel:  </FONT>$rows[6]</B>";}
       echo ("</td>
      </tr>
     </table>
    </td>
   </tr>
  </table>
<br>
" );
}

n°192060
mecano1
Posté le 08-08-2002 à 14:33:56  profilanswer
 

en fait je crois que j'y arrive maintenant, ta méthode était bonne, il y avait juste un twist dans la formule de calcul, je l'ai transformé comme ceci:
 
$mise=mysql_query("UPDATE annonces SET dif_jour = to_days(NOW()) - to_days(date)" );

n°192064
mecano1
Posté le 08-08-2002 à 14:38:06  profilanswer
 

oui c'est bon merci, j'ai essayé avec delete et mes enregistrement disparaissent quand ils ont + de 60 jours.
merci beaucoup :bounce:

n°192081
mahu le ma​lin
Posté le 08-08-2002 à 14:52:56  profilanswer
 

[:youyou2224]


---------------
JeuxVideo.Records.Mame
n°192101
mahu le ma​lin
Posté le 08-08-2002 à 15:05:32  profilanswer
 

arf
 
j'ai pas vu mais ta méthode UPDATE, mets là au dehors de la boucle while !!!
 
par contre j'y pense tu n'as pas besoin de cet update si dans ton select tu fais :  
 

SELECT *, (TO_DAYS(NOW()) - TO_DAYS(date)) as dif_jour FROM tabase .....


 
tu peux même les trier après avec ORDER BY dif_jour   ;)  
 
tu les affiches après grâce à  

Code :
  1. $qry = "SELECT *, (TO_DAYS(NOW()) - TO_DAYS(date)) as dif_jour FROM tabase .....";
  2. $result=mysql_query($qry);
  3. while ($record=mysql_fetch_array($result)) {
  4.    // évidemment ici tu mets ton annonce
  5.   echo $record["dif_jour"]."<br>";
  6. }


 
en espérant t'avoir un peu plus aider  :benetton:


Message édité par mahu le malin le 08-08-2002 à 15:06:21

---------------
JeuxVideo.Records.Mame

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  problème de boucle avec update.........(résolu)

 

Sujets relatifs
requete ok dans mysql mais pas en php........(résolu)problème avec WHERE pour récup de données... (résolu)
A ceux qui utilisent ANT...[Résolu merci Dark et Greg]renseigner un champ de type date dans mysql ........(résolu)
Probleme Php&MysqlProbleme Session ASP
Repérer un caractere dans une chaine de caractere .. g un bug [RESOLU]question toute simple, comment arrondir une valeur? [RESOLU]
[VB(A)] index de composants(résolu) 
Plus de sujets relatifs à : problème de boucle avec update.........(résolu)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR