Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2006, 14h32   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
Par défaut Problème avec mon script

Bonjour

Bon alors je vous explique mon problème, voici une partie de mon furmulaire (qui marche très bien ) :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
            <strong>Date de début du concours :</strong><br />
            <select name="date1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
                  <option value="4">4</option>
                  <option value="5">5</option>
                  <option value="6">6</option>
                  <option value="7">7</option>
                  <option value="8">8</option>
                  <option value="9">9</option>
                  <option value="10">10</option>
                  <option value="11">11</option>
                  <option value="12">12</option>
                  <option value="13">13</option>
                  <option value="14">14</option>
                  <option value="15">15</option>
                  <option value="16">16</option>
                  <option value="17">17</option>
                  <option value="18">18</option>
                  <option value="19">19</option>
                  <option value="20">20</option>
                  <option value="21">21</option>
                  <option value="22">22</option>
                  <option value="23">23</option>
                  <option value="24">24</option>
                  <option value="25">25</option>
                  <option value="26">26</option>
                  <option value="27">27</option>
                  <option value="28">28</option>
                  <option value="29">29</option>
                  <option value="30">30</option>
                  <option value="31">31</option>
            </select>
             / 
            <select name="date2">
                  <option value="01">01</option>
                  <option value="02">02</option>
                  <option value="03">03</option>
                  <option value="04">04</option>
                  <option value="05">05</option>
                  <option value="06">06</option>
                  <option value="07">07</option>
                  <option value="08">08</option>
                  <option value="09">09</option>
                  <option value="10">10</option>
                  <option value="11">11</option>
                  <option value="12">12</option>
            </select>
             / 
             <select name="date3">
                  <option value="2006">2006</option>
                  <option value="2007">2007</option>
            </select><br/><br/>
 
            <label for="duree"><strong>Durée :</strong></label><br />
            <strong>1 semaine</strong> <input name="duree" type="radio" value="1" /><br/>
            <strong>2 semaines</strong> <input name="duree" type="radio" value="2"/><br/><br/>
?>
Et un bout du script qui va avec :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
                        //Créér une compétition
                        if(!empty($_POST['creer']) && !empty($_POST['nom_concour']) && !empty($_POST['date1']) && !empty($_POST['date2']) && !empty($_POST['date3']) && !empty($_POST['duree']) && !empty($_POST['message']))
                        {
                              $timestamp = mktime(0, 0, 0, $_POST['date2'], $_POST['date1'], $_POST['date3']);
                              if($_POST['duree'] == 1)
                              {
                                    $timestamp2 = $timestamp + 3600 * 24 * 7;
                              }
                              elseif($_POST['duree'] == 2)
                              {
                                    $timestamp2 = $timestamp + 3600 * 24 * 7;
                              }
 
                              // ----------------------------------- L'erreur de date se trouve dans cette partie ------------------------------------
                              $compt_sql = mysql_query("SELECT COUNT(*) AS nbre_compet FROM perso_admin WHERE concour='".$_POST['nom_coucour']."'");
                              $compt =  mysql_fetch_array($compt_sql);
                              if($compt['nbre_compet'] == 0)
                              {
                                    if(mysql_query("INSERT INTO perso_admin(concour, date1, date2, message, id) VALUES('".mysql_real_escape_string($_POST['nom_concour'])."', '".$timestamp."', '".$timestamp2."', '".mysql_real_escape_string($_POST['message'])."', '')"))
                                    {
                                          echo '<strong>Concour '.nl2br(htmlspecialchars($_POST['nom_concour'])).' créé !</strong>';
                                    }
                                    else
                                    {
                                          echo '<strong>Erreur lors de la création du concour, veuillez recommencer ultérieurement !</strong>';
                                    }
                              }
                              else
                              {
                                    echo '<strong>Une compétition en cours porte déjà ce nom ! Vous avez peut être envoyé deux fois la même information en actualisant !</strong>';
                              }
                              // ----------------------------------------------------------------------------------------------------------------------------------
                        }
?>
Mon problème :

Tout marche super bien, aucunes erreurs MySQL ... mais celà enregistre un timestamp de 0000000... L'erreur se trouve entre les 2 :
// -------------------- ...
Je le sais car j'ai remplacé cette partie par :
Code :
echo '<strong>'.$timestamp.'<br/>'.$timestamp2.'</strong>' ;
Et celà affichait les bons timestamps !


Help
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 15h12   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Et la connexion à la bdd elle est faite ??
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 15h45   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
Oui bien sur il n'y a aucuns problèmes avec Mysql, les informations sont bien rentrés, seul les deux timestamps ne marchent pas et enregistrent 00000000000000 ! Pourtant les deux variables sont bien les bonnes et vallent bien la valeur désiré !
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 16h10   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Demandes un affichage de la requete (sans l'execution) pour voir ce que ca donne.

Sinon testes avec ceci :
Code :
 ".$timestamp.", ".$timestamp2."
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h06   #5
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
Code :
 ".$timestamp.", ".$timestamp2."
Déjà éssayé ! Je viens même de refaire un éssai et non ce n'est pas celà du tout ...

--

J'ai remplacé :

Code :
1
2
3
4
5
6
7
8
						if(mysql_query("INSERT INTO perso_admin(concour, date1, date2, message, id) VALUES('".mysql_real_escape_string($_POST['nom_concour'])."', ".$timestamp.", ".$timestamp2.", '".mysql_real_escape_string($_POST['message'])."', '')"))
						{
							echo '<strong>Concour '.nl2br(htmlspecialchars($_POST['nom_concour'])).' créé !</strong>';
						}
						else
						{
							echo '<strong>Erreur lors de la création du concour, veuillez recommencer ultérieurement !</strong>';
						}
Par :

Code :
echo "INSERT INTO perso_admin(concour, date1, date2, message, id) VALUES('".mysql_real_escape_string($_POST['nom_concour'])."', ".$timestamp.", ".$timestamp2.", '".mysql_real_escape_string($_POST['message'])."', '')";
Et voilà ce que celà affiche

INSERT INTO perso_admin(concour, date1, date2, message, id) VALUES('Test', 1178661600, 1179266400, 'Ceci est un éssai ...', '')

Merci au moins je sais maintenant un peut mieux où se trouve l'erreur ! Mais je ne comprends toujours pas

Edit : Mon erreur se trouve donc soit dans la conception de la requète, soit dans la base elle même !

Voici à quoi elle ressemble :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
-- 
-- Structure de la table `perso_admin`
-- 
 
CREATE TABLE `perso_admin` (
  `concour` varchar(50) NOT NULL default '',
  `date1` timestamp(14) NOT NULL,
  `date2` timestamp(14) NOT NULL default '00000000000000',
  `message` text NOT NULL,
  `id` int(100) unsigned NOT NULL auto_increment,
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h12   #6
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Fais ceci alors :
Code :
mysql_query("INSERT INTO perso_admin(concour, date1, date2, message, id) VALUES('".mysql_real_escape_string($_POST['nom_concour'])."', ".$timestamp.", ".$timestamp2.", '".mysql_real_escape_string($_POST['message'])."', '')") or die(mysql_error());
Là on verra s'il y a une erreur coté insertion
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h18   #7
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
Rien ne s'affiche !
Il a donc fort à parier que l'erreur se trouve dans la base de donnée ! La structure se trouve dans mon précédant message (j'avais édité)
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h22   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Moi mes timestamps sont stockés dans des champs : int(11).

Teste avec ceci pour voir
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h30   #9
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
Super celà marche !!!

Merci beaucoup pour ton aide



Arf alors le type timestamp il sert à quoi ?
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h34   #10
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Alors là bonne question il faudrait voir ca coté documentation mysql ou autres

TIMESTAMP Properties as of MySQL 4.1


Ah oui de rien
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2006, 18h37   #11
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 1
Points : 1
C'est sur que c'est un peut merdique

Merci encore

a+
Toinou0123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h42.


 
 
 
 
Partenaires

Hébergement Web