IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajouter une entrée dans la base sous condition


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut Ajouter une entrée dans la base sous condition
    Bonjour, j'ai besoin d'aide je cherche depuis quelques jours mais je ne trouve pas la solution !!

    Je développe pour ma société un script php de gestion Auto, et nous avons une équipes qui utilisent des véhicules pour aller en déplacement.

    J'ai une base MySQL pour les missions et j'ai fais une page avec la liste des 5 dernières missions, et avec quel immatriculation utilisé.

    Chaque utilisateur avant d'utiliser un véhicule doit venir remplir un formulaire en ligne (en PHP), a sont retour il doit revenir sur le formulaire pour rendre le véhicule a l'aide d'un bouton.

    Mais j'aimerai que si un nouvelle utilisateur souhaite prendre un véhicule, le formulaire vérifie que le véhicule selon sont immatriculation est disponible, pour cela j'ai un champs IMMATRICULATION ET RESTITUTION dans ma table, le champ RESTITUTION contient le 1 pour utilisé ou 0 pour libre.

    Ma question est comment faire pour vérifier si le véhicule est dispo ou pas avec ces champs ? que mon script vérifie que le champs RESTITUTION est a 1 ou 0 selon l'immatriculation et me renvois le message que le véhicule est déja utilisé ou pas ?

    je sais pas si c'est claire

    Merci
    Max

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    Bonjour,
    ton projet est très clair

    Mais que désires tu ? ce que tu demandes est 10 fois plus simple que ton scrit php (deja ecrit?)

    Un probleme pour faire la requete ?
    un probleme pour ecrire le code php ?

    Pourquoi tu ne nous donnes pas déja ton code ou tu as essayé ce contrôle de disponibilité ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut
    Merci pour ta réponse, c'est pour écrire le script php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $individu=$_POST["nom"];
    $vehicule=$_POST["matricule"];
    $objectif=$_POST["objectif"];
    $km=$_POST["km"];
    $qte=$_POST["qte"];
    $datedeb=$_POST["datedeb"];
    $datefin=$_POST["datefin"];
    $dated = date('Y-m-d H:i:s', strtotime($datedeb));
    $datef = date('Y-m-d H:i:s', strtotime($datefin));
    //$restitution = '1';
    //$idvehicule   = '5';
     
    $requete20 = mysql_query("select * FROM mission where restitution = '1' ");
    		while($row1 = mysql_fetch_array($requete20))
    $restitutionok =$row1[8];
     
    if( $vehicule == 'Renault Kangoo - CD-000-PH' && $restitution == $restitutionok ) {
     
     
    echo 'test kangou -  ';  echo $vehicule;  echo $restitutionok;
     
    } elseif ( $vehicule == 'Citroën C3 - CK-000-SN' && $restitution == $restitutionok )  {
     
     
     
    echo 'test c3 -  '; echo $vehicule; echo $restitutionok;
     
     
     
    }

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete20 = mysql_query('select restitution FROM mission where matricule ="'.mysql_real_escape_string($_POST['matricule']).'"');
    $row1 = mysql_fetch_array($requete20);
    $restitutionok =($row1['restitution']==1);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!$restitutionok){
       echo 'vehicule non restitué<br><a href="javascript:back()">retour</a>';
       exit;
    }

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut
    Merci c'est exactement ça

    mais j'ai encore un petit soucis (j'ai 2 véhicules), il me dit que le véhicule est indisponible même si il ne l'est pas sur un des véhicules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $requete20 = mysql_query('select restitution FROM mission WHERE idvehicule ="'.mysql_real_escape_string($_POST['matricule']).'"');
    $row1 = mysql_fetch_array($requete20);
    $restitutionok =($row1['restitution']==1);
     
    if (!$restitutionok){
       echo '<center>Vehicule non restitué<br>Un autre utilisateur utilise déja ce véhicule, il doit d\'abort le restituer pour que vous puissiez le réserver.<br><a href="javascript:back()">retour</a></br>';
       include('../footer.php');
       exit;
    }
    Mais si je change cette valeur comme ci dessous, il m'indique quel est dispo, mais c'est l'autre qui est oqp!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $restitutionok =($row1['restitution']!=1);

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    fait un var_dump pour voir exactement ce que te retourne restitution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $row1 = mysql_fetch_array($requete20);
    var_dump($row1['restitution']);
    comme ca tu pourras finaliser ta condition en voyant les 2 valeurs retournées
    $restitutionok =($row1['restitution']=='1'); ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut
    pour un des véhicules il me retourne

    et l'autre
    alors que les 2 véhicules ont le chiffre 1 dans le champs restitution

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut
    Citation Envoyé par papajoker Voir le message
    fait un var_dump pour voir exactement ce que te retourne restitution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $row1 = mysql_fetch_array($requete20);
    var_dump($row1['restitution']);
    comme ca tu pourras finaliser ta condition en voyant les 2 valeurs retournées
    $restitutionok =($row1['restitution']=='1'); ?
    Je comprend pas

    j'ai fais le var_dump, il me retourne donc les bonnes info quand il y a 1 dans le champs restitution, il me retourne string(1) "1" et string(1) "0" quand la voiture est libre! mais quand je remet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $restitutionok =($row1['restitution']==1);
    la fonction ne marche pas, il me dit que la voiture est libre meme si le 1 est positionné dans le champs "restitution"

    SI vous pouvez m'éclairer un peux ça serai

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    Citation Envoyé par maxdata Voir le message
    j'ai fais le var_dump, il me retourne donc les bonnes info quand il y a 1 dans le champs restitution, il me retourne string(1) "1" et string(1) "0" quand la voiture est libre! mais quand je remet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $restitutionok =($row1['restitution']==1);
    la fonction ne marche pas, il me dit que la voiture est libre meme si le 1 est positionné dans le champs "restitution"
    c'est moi qui ne comprend rien
    je suis parti du principe :
    restitution=>1 // que le véhicule a été restitué = il est libre
    restitution=>0 // véhicule non restitué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $restitutionok =($row1['restitution']==1);
    toi te me dis l'inverse ???? "il me retourne "0" quand la voiture est libre"

    A ce moment la, c'est a toi d'inverser la condition ! je ne voie pas de problème ici c'est ton code métier, c'est toi qui modifie cette valeur dans la base suivant tes règles.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 71
    Par défaut
    Merci pour votre aide

    Je remet mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $individu=$_POST["nom"];
    //$vehicule=$_POST["matricule"];
    $objectif=$_POST["objectif"];
    $km=$_POST["km"];
    $qte=$_POST["qte"];
    $datedeb=$_POST["datedeb"];
    $datefin=$_POST["datefin"];
    $dated = date('Y-m-d H:i:s', strtotime($datedeb));
    $datef = date('Y-m-d H:i:s', strtotime($datefin));
    //$restitution = '1';
    //$idvehicule   = '5';
     
    $requete20 = mysql_query('SELECT restitution FROM mission WHERE idvehicule ="'.mysql_real_escape_string($_POST['matricule']).'"');
    $row1 = mysql_fetch_array($requete20);
    //var_dump($row1['restitution']);
    $restitutionok =($row1['restitution']==1);
     
    if (!$restitutionok){
     
     echo "Test Non dispo";
     
    include('../footer.php');
       exit;
    }
     
    echo "Test ok dispo";
     
    mysql_close();
    je souhaite que ce script aille vérifier si le véhicule est dispo ou pas, si les condition suivante champs de ma base de donné :

    imatriculation=toto et restitution = 1 -> véhicule non disponible

    imatriculation=toto et restitution = 0 -> véhicule disponible

    imatriculation=tata00 et restitution = 0 -> véhicule disponible

    cela veut dire que la requette doit vérifier toute les entrées avec "toto" na pas déja le chiffre 1 dans le champs "restitution" avant de me dire que le véhicule est disponible!

    j'ai l'impression que la requette actuelle ne va pas vérifier si cette condition existe déjà non ?


  11. #11
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    oui tu peux si tu désires ajouter a ta requete sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... AND restitution='0';

Discussions similaires

  1. Ajouter une entrée dans le menu contextuel de la barre de titre sous Windows
    Par Tyler_Durden dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 20/10/2008, 10h50
  2. Comment ajouter une entrée dans le menu contextuel
    Par Ex0w@tt dans le forum Windows XP
    Réponses: 6
    Dernier message: 11/11/2007, 17h46
  3. Ajouter une entrée dans le menu contextuel de windows
    Par ero-sennin dans le forum Delphi
    Réponses: 9
    Dernier message: 06/12/2006, 17h02
  4. Effacer une ligne dans un etat sous condition
    Par denisfavre dans le forum IHM
    Réponses: 5
    Dernier message: 23/11/2006, 18h18
  5. Réponses: 5
    Dernier message: 19/06/2006, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo