Page 1 sur 1

timestamp

Posté : 04 nov. 2009, 01:44
par david18
Bonjour,

j'ai une question pour mon site de musique, fichier concerts.php...

je veux qu'a la date venue, le concerts de cet date soit supprimé.

comme ca:
j'ai ecris 2 concerts:
le 04 novembre 2009
le 06 novembre 2009

et je veux que demain, le concert du 4 novembre soit supprimé car, la date est passé. et le 7 novembre pareil, la date du 6 novembre soit supprimé.

je vous envoye le code du fichier en cas de besoin:
<p>
<?php
echo "<table>
         <tr>
             <th>Nom de l'artiste : </th>
             <th>Date : </th>
             <th>ville : </th>
             <th>Tarif : </th>
             <th>reservation : </th>
        </tr>";

$requete="SELECT * FROM concert ORDER by date ASC";
$result=mysql_query($requete);
while($concert=mysql_fetch_array($result)) {
     
      echo "<tr>
                <td>".$concert['nom']. "</td>
                <td>".$concert['date']."</td>
                <td>".$concert['ville']."</td>
                <td>".$concert['tarif']."</td>
                <td>" .$concert['reservation']."</td>
           </tr>";


}
echo "</table>";
?>
</p></div>
<?php    
include("./includes/bas.php");
?>
Je souhaiterai savoir comment faire cela?

merci par avance, pour votre aide

Re: timestamp

Posté : 04 nov. 2009, 03:09
par niuxe
Bonsoir david18,

Je vois deux bout de pistes :
sql (à vérifier) :
SELECT * FROM concert WHERE date > NOW() ORDER by date ASC;
en php (à vérifier) :
//je pars du principe que ta date dans ta SGBDR est comme ceci : année - mois - jour
$maintenant = time();
    
$pattern = "#^([0-9]{4})-([0-9]{2})-([0-9]{2})$#";

while($concert=mysql_fetch_array($result)) {
    $annees_concert = (preg_match($pattern,$concert['date']))? preg_replace($pattern,"$1",$concert['date']) : die("comportement anormal : impossible de récupérer l'année du concert") ;
    
    $mois_concert = (preg_match($pattern,$concert['date']))? preg_replace($pattern,"$2",$concert['date']) : die("comportement anormal : impossible de récupérer le mois du concert") ;
    
    $jour_concert = (preg_match($pattern,$concert['date']))? preg_replace($pattern,"$3",$concert['date']) : die("comportement anormal : impossible de récupérer le jour du concert") ;
    
    
    $timestamp_concert = mktime(1,0,0,$mois,$jour,$annees_concert);
    if($timestamp_concert > $maintenant){
        echo "<tr>
                    <td>".$concert['nom']. "</td>
                    <td>".$concert['ville']."</td>
                    <td>".date("d m Y",$timestamp_concert)."</td>
                    <td>".$concert['tarif']."</td>
                    <td>" .$concert['reservation']."</td>
               </tr>";
    }
}

@+

Re: timestamp

Posté : 04 nov. 2009, 12:50
par david18
Désolé mais je n'ai pas tres bien compris ce que t'as fais, tu pourrais m'expliquer?
et quand tu as mis a verifier ca veut dire qu'il faut que je vérifie sur mon fichier et je corrige?

merci par avance,

Re: timestamp

Posté : 04 nov. 2009, 19:26
par niuxe
Je t'ai donné deux pistes à suivre : soit la méthode SQL, soit en PHP.
À noter que la solution SQL reste la meilleur en générale sauf cas particulier (Dans ton cas par exemple, afficher les dates de concerts à venir dans un coin de la page et dans un autre coin, afficher les concerts passés avec par exemple un résultat de ventes de billets.)

Quand j'ai mis « à vérifier », c'est au niveau de la syntaxe. Je te l'ai fait de tête et il était 2h du mat.. À vue de nez et en me relisant, je pense que c'est bon. Là, je n'ai pas commenté le code volontairement afin que tu dissèques le script pour le comprendre.

Bon code

Re: timestamp

Posté : 04 nov. 2009, 19:32
par david18
En faite moi je veux pas, afficher les concerts passé, seulement les concerts a venir, et la date passé le concerts s'effacent

si je choisi la methode sql, je dois modifier aussi mon table non?

Re: timestamp

Posté : 04 nov. 2009, 20:08
par niuxe
En faite moi je veux pas, afficher les concerts passé, seulement les concerts a venir, et la date passé le concerts s'effacent [...]
Je l'entends bien comme cela. C'était un exemple plus ou moins pertinent de différencier les deux solutions que je t'ai soumises.
[...] si je choisi la methode sql, je dois modifier aussi mon table non?
Pas du tout.

Je t'invite à lire ou à relire l'article de phpdebutant notamment la section : « La commande SELECT » (vers le bas).
Après avoir (re)lu, je t'invite également à lire ma requête.

Bonne soirée à toi

Re: timestamp

Posté : 04 nov. 2009, 21:12
par david18
ok merci

Re: timestamp

Posté : 17 nov. 2009, 00:49
par david18

Je vois deux bout de pistes :
sql (à vérifier) :
SELECT * FROM concert WHERE date > NOW() ORDER by date ASC;
Dans, ce cas, je dois mettre WHERE date > ORDER by date ASC
c'est bien ca?