Page 1 sur 1

Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 13:30
par maxdata
Bonjour,

J'ai besoin d'un coup de main pour un enregistrement dans mon script php, je ne sais pas comment procéder!! j'ai tenté plusieurs tests mais je n'y arrive pas :(

j'ai un script d'utilisation des véhicules et je souhaite que quand un utilisateur restitue le véhicule, la l'utilisateur saisi le km lors de la restitution, et que le script vérifie que le kilométrage est supérieur a l'ancienne valeur déja dans la base, mais en fonction du bon véhicule (car plusieurs véhicules)

je vérifie déja que les champs sont bien remplis, mais comment savoir que le champs "km" est supérieur a l'ancienne valeur saisie lors de la restitution de l'ancien utilisateur ?

les champs dans ma base sont ID, km, dated,datef,comment, actif
<?php
include('base.php');
include('../head.php');

$date = date("Y-m-d");
$heure = date("H:i:s");

//$idmission=$_POST["idmission"];
$km=$_POST["km"];
$qte=$_POST["qte"];
$comment=$_POST["comment"];


// On vérifie si les champs sont vides
if(empty($km) OR empty($qte) OR empty($comment))
    {
    echo '<br><br><center><font color="red">Attention, Tous les champs doivent être remplis !</font><br><br>
<FORM>
<INPUT type="button" value="Précédent" onclick="history.back()">
</FORM>  <br><br></centre>';
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table
else     
    { 

echo "test OK";

mysql_close();
}  
Merci a vous :)

Max

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 13:58
par sirakawa
kilo est l'ancien kilométrage
500 pourrait être une variable
$req = "(select $new_kilo > (select kilo from bidule))";
(select 5000 > (select kilo from bidule));
Ceci fonctionne (à adapter avec des variables au lieu de 5000):
UPDATE bidules SET rest = 5000 WHERE id = 1 AND (kilo < 5000 OR rest IS NULL);

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 15:42
par Invité
merci pour ta réponse, mais comment mettre en forme cette explication avec mon script ? je capte pas ?

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 15:53
par maxdata
un truc dans le genre non ?

$km=$_POST["km"];
$qte=$_POST["qte"];
$comment=$_POST["comment"];
$control = "(select $km > (SELECT  km_parcouru FROM mission))";
$req = mysql_query($control) or die('Erreur SQL !<br>'.$control.'<br>'.mysql_error());


 

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 16:13
par sirakawa
On va faire progressif avec une autre solution:
On suppose que tu connais une valeur pour $id (le numéro de la mission)
Teste ca:
$kilo_ancien = "SELECT  km FROM mission where ID = $id";
print "ancien kilométrage $kilo_ancien";
et reposte pour avoir la suite (que ça marche ou pas)

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 16:20
par Mazarini
Bonjour,

Je pense qu'une lecture préalable comme le propose sirakawa est nécessaire. Cela permet de contrôler le nombre de km, mais aussi que l'id n'a pas été trafiqué ou supprimer, que le véhicule est actf...

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 17:50
par maxdata
merci :)

Voila ma requete :
$kilo_ancien = "SELECT KMPARCOURUMISSION FROM mission WHERE IDMISSION = ".$_GET['idmission']."";
print "ancien kilométrage $kilo_ancien";
resultat :
ancien kilométrage SELECT KMPARCOURUMISSION FROM mission WHERE IDMISSION = 114 

Re: Vérification d'une valeur avant enregistrement

Posté : 04 nov. 2013, 18:41
par sirakawa
merci :)

Voila ma requete :
$kilo_ancien = "SELECT KMPARCOURUMISSION FROM mission WHERE IDMISSION = ".$_GET['idmission']."";
print "ancien kilométrage $kilo_ancien";
resultat :
ancien kilométrage SELECT KMPARCOURUMISSION FROM mission WHERE IDMISSION = 114 
Non, après un SELECT,, on n'obrtient pas directement le résultat :
aussi::
/*comme ça on peut afficher la requete en cas d'erreur*/
$requete =  "SELECT KMPARCOURUMISSION FROM mission WHERE IDMISSION = ".$_GET['idmission']."";
/*$resultat est une ressource qui sera exploitée plus loin (il vaut false si la requête n'a pas de résultat*/
$resultat =mysql_query ($requete);
if ($resultat !== false)
{
$ligne = mysql_fetch_assoc($resultat);
}
else
{
/*on pourrait mettre ici un traitement d'erreur mysql*/
}
print_r($ligne);

Re: Vérification d'une valeur avant enregistrement

Posté : 05 nov. 2013, 11:12
par maxdata
a ok, voila le résultat :

Array ( [KMPARCOURUMISSION] => 12000 )

Re: Vérification d'une valeur avant enregistrement

Posté : 05 nov. 2013, 14:06
par sirakawa
$ancien_kilo = $ligne['KMPARCOURUMISSION' ];
et après tu devrais pouvoir te débrouiller
if ()
{

}
else
{

}