addition d'horaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : addition d'horaire

par jemflight » 29 déc. 2005, 11:29

Allelujah !!!!

La formule magique est bien plus simple que ce que je ne pensais.
$sql = "UPDATE pilotes SET heures = SEC_TO_TIME( TIME_TO_SEC('$duree') + TIME_TO_SEC(heures) ) WHERE callsign = '$callsign'" ;
$result = mysql_query($sql);
L'addition fonctionne enfin.
Je tiens à remercier ma maison de disques, lol. Nan sérieusement merci pour votre patience.

par Invité » 28 déc. 2005, 23:47

bon, devant tant de complications, j'ai essyé un truc plus simple...
$sql = "UPDATE pilotes SET heures='SEC_TO_TIME( TIME_TO_SEC(heures) + SEC_TO_TIME(TIME_TO_SEC($duree)))'
WHERE callsign='$callsign'" ;
$result = mysql_query($sql);
la bonne nouvelle c'est que la valeur de la table pilotes est updaté mais au lieu d'avoir le resultat de l'addition j'ai simplement la valeur rentrée dans le formulaire qui remplace celle qui est déjà presente ans la table

par Cyrano » 28 déc. 2005, 21:43

À mon avis, tu as besoin de décrocher 5mn :
- Tu as toujours l'erreur sur la variable $timepilot qui, je te le rapelle, selon ton code complet est un tableau comme je te l'ai déjà mentionné;
- Tu nous remets cette fois une requête complète, mais sans commentaire sur d'éventuels messages d'erreur;
On doit deviner ?

par jemflight » 28 déc. 2005, 18:59

//calcul
$sql = "SELECT (SEC_TO_TIME(TIME_TO_SEC(". $duree .") + (TIME_TO_SEC(". $timepilot .")))) FROM pilotes";
$res = mysql_query($sql);
echo "$sql";
???

par Cyrano » 28 déc. 2005, 18:56

Bon, on va reprendre une dernière fois: une requête SELECT doit comprendre au minimum :

Code : Tout sélectionner

SELECT (champ_1, champ_2, ..., champ_n) FROM table
Dans certains cas, tu peux ne pas préciser la table dans la mesure où tu fais simplement faire un calcul à ton SGBD, mais dans le cas qui nous occupe, c'est un peu sans intérêt et hors de propos.

En outre, tu dois impérativement préciser la (ou les) table(s) si tu ajoute des clauses précisant un champ particulier.

Ta requête de tout à l'heure ne comprend ni le SELECT ni le FROM : il est normal qu'à l'exécution tu te fasses jeter par MySQL.

par pjl » 28 déc. 2005, 18:54

//calcul
$sql = "(SEC_TO_TIME(TIME_TO_SEC(". $duree .") + (TIME_TO_SEC(". $timepilot ."))))";
$res = mysql_query($sql);
echo "$sql";
On parle de ce bout de code qui a un problème.

Mais maintenant, si tu ne sais pas construire une reqête SQL, il faut commencer par apprendre celà.

par jemflight » 28 déc. 2005, 18:47

bah je vois pas ce qui manque à la requete et en plus j'imagine que je vous fait chier donc bon... pas tres agreable tout ça... :?

par pjl » 28 déc. 2005, 18:45

tu ne vois pas quoi ?

par jemflight » 28 déc. 2005, 18:41

j'sui desolé je dois etre vraiment nul car je vois pas.

par pjl » 28 déc. 2005, 18:11

- SELECT ...sélectionner / afficher
- INSERT ... insérer
- DELETE ... suprimer
- UPDATE ... mettre à jour

C'est plus clair comme ca ?

Tiens juste un exemple de requete à tester :

Code : Tout sélectionner

SELECT 1 +1

par Cyrano » 28 déc. 2005, 18:08

Non, il y a un truc que tu ne comprends visiblement pas: dans le bout de code illustré plus haut, tu n'as qu'un bout de requête: en soi, ce n'est pas un problème, mais juste après, tu utilises mysql_query() : ça ne peut retourner qu'une erreur.

par jemflight » 28 déc. 2005, 18:06

je les ai déja recupere mes données
//récupération de la valeur temps deja effectuée
$heures = "SELECT heures FROM pilotes WHERE callsign IN ('$callsign')";
$result = mysql_query($heures);
while ($timepilot = mysql_fetch_array($result, MYSQL_NUM));

{
echo $timepilot['heures'];
}
et $duree = "la valeur dans le formulaire"

par Cyrano » 28 déc. 2005, 17:59

non, dans la requête elle-même : Il te manque l'origine des données : tu ne les récupères pas au hasard je suppose. Donc...

par jemflight » 28 déc. 2005, 17:18

or die ("la requete ne peut etre execetuée")?

par Cyrano » 28 déc. 2005, 17:04

Voilà, on progresse. Mais malgré ça, ta requête commence par SELECT : il manque quand même un autre élément (obligatoire) : lequel selon toi et pourquoi ?