timestamp

Eléphant du PHP | 58 Messages

04 nov. 2009, 01:44

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

Eléphant du PHP | 453 Messages

04 nov. 2009, 03:09

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>";
    }
}

@+
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 58 Messages

04 nov. 2009, 12:50

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,

Eléphant du PHP | 453 Messages

04 nov. 2009, 19:26

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
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 58 Messages

04 nov. 2009, 19:32

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?

Eléphant du PHP | 453 Messages

04 nov. 2009, 20:08

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
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 58 Messages

04 nov. 2009, 21:12

ok merci

Eléphant du PHP | 58 Messages

17 nov. 2009, 00:49


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?