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 :

Inventaire


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut Inventaire
    salut,

    je veux écrire un script d'inventaire.

    Dans le premier fichier qui je le nomme inventaire.php contient les locales des dépôts (selectionne de la BDD) et aussi un champs de text (ou je tape un référence quelconque).

    Après je crée un fichier inventaire1.php pour récupérer des valeurs saisies dans le formulaire et faire un simple test : si la référence tapée correspond a la référence d'un article qui existe dans le dépôt sélectionné.

    Je teste les deux script ça marche mais mon but est de baser sur le même principe et faire un test sur un ensemble des références

    c'est a dire au lieu de taper 3 je tape 6,9,8,7,5 séparés par des virgules et tester ces références donc afficher ceux qui correspond aux références des articles dans le dépôt sélectionné.

    voila le script inventaire.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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <html>
    <head>
     
    <title>exercice 3</title>
     
    </head>
     
    <body>
    <form action="inventaire1.php" method="post" name="form1">
     
     
     
    <table frame="box" rules="none">
     
    <td>
      Local 
    </blockquote></td>
    <td><select name="local">
    <?php
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="glpi";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from depot";
    $result=mysql_query($query);
     
    while($ligne=mysql_fetch_row($result))
    {
    echo"<option value=\"$ligne[0]\">$ligne[2]</option>"; 
    }
    ?>
    </select></td>
    </tr>
    <tr>
    <td>
     choix
    </td>
    <td><input type="text" name="choix"/>
     </td>
    </tr>
     
     
    <tr>
    <td colspan="2" align="center"><input type="submit" value="valider" name="envoyer"/></td></tr>
     
    </table>
    </form>
    </html>
    le script inventaire1.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
    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
     
     
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</span></td>
    </td>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
     
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="gestionpret";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local' and Reference='$choix'";
    $res=mysql_query($query);
    if(mysql_num_rows($res)>0)
    {
     
     
    while($ligne=mysql_fetch_row($res))
    {
     
     
     
    			 echo"<tr><td>$ligne[0]</td><td>correcte</td></tr>";
     
     
    }
    }
    else
    echo"<tr><td>$choix</td><td>faux</td></tr>";
     
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
    </form>	
    </body>
    </html>

    je suppose que je dois travailler avec la fonction split()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $valore=split("[,]",$choix);
    je suppose que le resultat est sous forme de tableau et après avoir parcouru ce tableau, tester élément par element

    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu peux simplement utiliser IN dans ta requête pour prendre en compte une liste d'id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from article where local='$local' and Reference IN ($choix)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    désolé le nom de la BDD dans inventaire1.php est glpi

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    non c pas ca mon but je test votre solution


    mon but est : dans le formulaire inventaire.php

    je tape par exemple des références sépares par des virgules 5,7,9,2,1,6

    il m'affiche par exemple 7 correcte
    9 correcte
    6 correcte

    5 faux
    1 faux
    2 faux


    je parle de correcte et faux c après faire le test


    donc obliger de travailler avec split()

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonsoir,
    ou faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $stringReference="1,2,3,4,5,6,7,8";
    $TableauRef=explode(",",$stringReference);
    $Nb=count($TableauRef);
    for($i=0;$i<$Nb;$i++){
    //   traitement à réaliser sur
    //   $TableauRef[$i]
    }
    ?>

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    je fait la modification dans le fichier inventaire1.php

    mais quand je tape 4,9,8,7,6

    il m'affiche 4 faux
    4 faux
    4 faux
    4 faux
    4 faux


    peut être la boucle est incorrecte

    voila le fichier inventaire1.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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</span></td>
    </td>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="gestionpret";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
     for($i=0;$i<$Nb;$i++){
     
    while($ligne=mysql_fetch_row($res))
    {
     
     
                 if($TableauRef[$i]==$ligne[0])
    			 echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
    			 else
    			 echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
     
     
     
    }
    }
     
     
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
    </form>	
    </body>
    </html>

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    oui, la boucle est pas bonne.c'est plutôt un truc comme çà
    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
     
    <?php
    $stringReference="1,2,3,4,5,6,7,8";
    $TableauRef=explode(",",$stringReference);
    $Nb=count($TableauRef);
     
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]==$ligne[0])
    			 echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
    			 else
    			 echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
     
    }
     
    }
    ?>

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    merci pour vos reponses

    je corrige le script inventaire1.php

    le premier tableau m'affiche un résultat juste

    dans mon cas il m'affiche : résultat de choix
    1 correcte
    5 correcte


    mais le problème est dans l'affichage de deuxième tableau

    il m'affiche résultat de deuxième choix
    9 faux
    8 faux
    5 faux
    7 faux
    6 faux
    9 faux
    8 faux
    1 faux
    5 faux
    7 faux
    6 faux
    9 faux
    8 faux
    1 faux
    7 faux
    6 faux
    9 faux
    8 faux
    1 faux
    5 faux
    7faux
    6 faux
    9 faux
    8 faux
    1 faux
    1 faux
    5 faux
    7 faux
    6 faux



    le vrai résultat doit être

    résultat de la deuxième choix
    9 faux
    8 faux
    7 faux
    6 faux



    le script inventaire1.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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</span></td>
    </td>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="glpi";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]==$ligne[0])
    			 echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
     
    }
     
    }
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de deuximme choix</span></td>
    </td>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="glpi";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]!=$ligne[0])
    			 echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
     
    }
     
    }
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
     
    </form>	
    </body>
    </html>
    merci d'avance

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    changez les noms des variables dans le deuxième tableau.

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    merci de votre réponse

    mais l'affichage reste toujours erroné

    le script invantaire1.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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</td>
    </tr>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="glpi";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]==$ligne[0])
    			 echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
     
     
     
    }
     
    }
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de deuximme choix</td>
    </tr>
    <tr>
    <td>
    <?php
    $local2=$_POST['local'];
    $choix2=$_POST['choix'];
    $TableauRef2=explode(",",$choix2);
    $Nb2=count($TableauRef2);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="gestionpret";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query2="select *from article where local='$local2'";
    $res2=mysql_query($query2);
    while($ligne2=mysql_fetch_row($res2))
    {
    for($j=0;$j<$Nb2;$j++){
    if($TableauRef2[$j]!=$ligne2[0])
    			 echo"<tr><td>$TableauRef2[$j]</td><td>faux</td></tr>";
     
    }
     
    }
     
     
     
    ?>
     
     
    </td>
    </tr>
    </table>
     
    </form>	
    </body>
    </html>

  11. #11
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    le question qui suppose est ce que en php on accepte des testes

    comme celle ci if($TableauRef[$i]!=$ligne[0])

    car le premier test avec if($TableauRef[$i]==$ligne[0])

    donne de résultat juste mais avec le deuxième test ca marche pas

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    remplacez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($TableauRef[$i]!=$ligne[0])
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($TableauRef[$i]<>$ligne[0])

  13. #13
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 208
    Par défaut
    vraiment je trouves des chose qui ne sont pas logiques

    quant je tapes des valeurs : 1,8,9,0,3,6,5

    elle m'affiche ce résultat : résultat de choix
    1 correcte
    3 correcte
    5 correcte

    ces valeurs vérifier ma conditions

    et cella grâce a ce script
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</td>
    </tr>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="gestionpret";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]==$ligne[0])
    			echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
     
     
     
    }
     
    }
     
     
     
    ?>
     
     
     
    </td>
    </tr>
    </table>
     
     
     
     
    </form>	
    </body>
    </html>

    je veux juste afficher les restes des valeurs avec faux

    je fait comme suit avec else

    mais donne des résultat incorrecte

    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
    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
    <html>
    <head>
    </head>
     
    	<form action="" method="post" name="form1">
     
     
    <table frame="box" rules="none">
    <tr>
    <td>resultat de choix</td>
    </tr>
    <tr>
    <td>
    <?php
    $local=$_POST['local'];
    $choix=$_POST['choix'];
    $TableauRef=explode(",",$choix);
    $Nb=count($TableauRef);
    $serveur="localhost";
    $user="user1";
    $pwd="user1";
    $db="gestionpret";
    $lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
    mysql_select_db($db,$lien);
    $query="select *from article where local='$local'";
    $res=mysql_query($query);
    while($ligne=mysql_fetch_row($res))
    {
    for($i=0;$i<$Nb;$i++){
    if($TableauRef[$i]==$ligne[0])
    			echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
    			else
    				echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
     
     
     
    }
     
    }
     
     
     
    ?>
     
     
     
    </td>
    </tr>
    </table>
     
     
     
     
    </form>	
    </body>
    </html>


    qui n'est pas logique

    pouvez m'aidez dans ce sens

Discussions similaires

  1. Outil d'inventaire
    Par flouflou dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 29/01/2007, 01h10
  2. [batch]inventaire réseau-problème de boucle "for"
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 23/06/2006, 20h17
  3. Réponses: 2
    Dernier message: 16/06/2006, 14h04
  4. Inventaire
    Par dlbminot dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2006, 19h39
  5. Faire un inventaire
    Par gohu13 dans le forum Access
    Réponses: 3
    Dernier message: 22/09/2005, 11h39

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