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 :

Transfert de produit dans une gestion de stock


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Personnel
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Transfert de produit dans une gestion de stock
    Bonjour,
    J'ai besoin d' avoir une ligne par transfert de stock (Magasin central vers une réserve ou d'une réserve vers une autre réserve) mais je n'y arrive pas car je ne vois pas comment indiquer à au "Row" de passer à la ligne suivante ....
    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query = "SELECT `trans`.*,`team`.*,`local`.*,`stock`.*,`products`.*,`user`.* FROM trans
                                LEFT JOIN `deux`.`user` ON `trans`.`customer` = `user`.`id` 
                                LEFT JOIN `deux`.`stock` ON (`trans`.`tr_IDproduct` = `stock`.`ID` OR `trans`.`tr_IDproduct2` = `stock`.`ID`) 
                                LEFT JOIN `deux`.`products` ON `stock`.`id_product` = `products`.`id` 
                                LEFT JOIN `deux`.`team` ON `stock`.`id_team` = `team`.`id`
                                LEFT JOIN `deux`.`local` ON `stock`.`id_local` = `local`.`id`
    elle me renvoie :
    Date N° Trans Equipe A Local A -> Equipe B Local B Produit Quantité Préleveur
    23/12/2017 123456789 EA1155 IRS 2 -> EA1155 IRS 2 Combitips biopur stérile 0,1ml 30 Stephane
    23/12/2017 123456789 test3 magasin -> test3 magasin Combitips biopur stérile 0,1ml 30 Stephane
    et je voudrais :
    Date N° Trans Equipe A Local A -> Equipe B Local B Produit Quantité Préleveur
    23/12/2017 123456789 EA1155 IRS 2 -> test3 magasin Combitips biopur stérile 0,1ml 30 Stephane
    Voici le 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     </script>
                    <p class="introText">
                        <?php 
     
                           echo '<table id="fileData" width="100%" cellpadding="3" cellspacing="0">';
                            echo '<thead>';
                            // echo '<th style="width: 19px;" class="ui-state-default"></th>';
    						echo '<th class="ui-state-default" style="width: 40px; text-align: center;">'. $LANG['date'] .'</th>';
    						echo '<th style="width: 60px; text-align: center;" class="ui-state-default">'. $LANG['trans_no'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_team1'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_local1'] .'</th>';
    						echo '<th style="width: 10px; text-align: center;" class="ui-state-default">'. "->" .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_team2'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_local2'] .'</th>';
    						//echo '<th style="width: 90px; text-align: center;" class="ui-state-default">'. $LANG['product_code'] .'</th>';
                            echo '<th class="ui-state-default" style="width: 150px; text-align: left;">'. $LANG['product_description'] .'</th>';
                            echo '<th style="width: 65px; text-align: center;" class="ui-state-default">'. $LANG['quantity'] .'</th>';
                            echo '<th style="width: 80px; text-align: center;" class="ui-state-default">'. $LANG['customer'] .'</th>';
                            //echo '<th style="width: 80px; text-align: center;" class="ui-state-default">'. $LANG['reference'] .'</th>';
    						echo '<th style="width: 40px; padding-right: 5px; padding-left: 5px; text-align: center;" class="ui-state-default" id="task">'. $LANG['actions'] .'</th>';
                            echo '</thead>';
                            echo '<tbody>';
    						while ($row = mysql_fetch_assoc($results)) {
     
                            	$orderdate = strtotime($row['tr_date']);
    				$fdate = strftime("%d/%m/%Y", $orderdate);
                                echo '<tr>';
    							echo '<td class="txtCenter">' . $fdate . '</td>';
    									 echo '<td class="txtCenter">' . $row['tr_no'] . '</td>';
                                echo '<td class="txtCenter">' . $row['team'] . '</td>';
                                echo '<td class="txtCenter">' . $row['local_name'] . '</td>';
     
     
                                echo '<td class="txtCenter">' . "->" . '</td>';
     
     
     
                                echo '<td class="txtCenter">' . $row['team'] . '</td>';
                                echo '<td class="txtCenter">' . $row['local_name'] . '</td>';
    						    echo '<td class="txtLeft">' . $row['pr_name'] . '</td>';
    						    echo '<td class="txtCenter">' . $row['tr_quantity'] . '</td>';
    						    echo '<td class="txtCenter">' . $row['name'] . '</td>';
     
                                 echo '<td class="txtCenter" id="task1">
    								<a href="edit_trans.php?trans_id=' . $row['id'] . '">
    								<img src="images/edit.png" width="16" height="16" title="edit sale" style="margin:1px;"/>
    								</a> 
    								
    								<a href="view_trans.php?trans_id=' . $row['id'] . '" onClick="return confirm(\''. $LANG['alert_trans_del'] .'\');">
    								<img src="images/delete.png" width="16" height="16" title="delete trans" style="margin:1px;"/>
    								</a>
    								</td>'; 
                                echo '</tr>';
    C'est à partir de echo '<td class="txtCenter">' . "->" . '</td>'; que je voudrais lui faire lire la deuxième ligne .

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est plutôt ta requête qu'il faut revoir.

    Comment est structurée ta table "trans" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Personnel
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut revoir la requete en ajoutant les équipes et les lieux de stockages à la table "trans" ?
    J'y ai pensé mais cela fait deux informations dans deux tables différentes et je suis parti du principe qu'un produit appartient à une équipe et est rangé dans le local qui lui appartient ....
    Voici la structure complète de la base avec les relations :Nom : BDD.JPG
Affichages : 488
Taille : 98,0 Ko

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Personnel
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut J'ai trouvé une solution mais elle me parais pas très "classe" ....
    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
    $query = "SELECT `trans`.*,`team`.*,`local`.*,`stock`.*,`products`.*,`user`.* FROM trans
                                LEFT JOIN `irsdeux`.`user` ON `trans`.`customer` = `user`.`id` 
                                LEFT JOIN `irsdeux`.`stock` ON `trans`.`tr_IDproduct` = `stock`.`ID`  
                                LEFT JOIN `irsdeux`.`products` ON `stock`.`id_product` = `products`.`id` 
                                LEFT JOIN `irsdeux`.`team` ON `stock`.`id_team` = `team`.`id`
                                LEFT JOIN `irsdeux`.`local` ON `stock`.`id_local` = `local`.`id`
                                ";
                    $query2 = "SELECT `trans`.*,`team`.*,`local`.*,`stock`.*,`products`.*,`user`.* FROM trans
                                LEFT JOIN `irsdeux`.`user` ON `trans`.`customer` = `user`.`id` 
                                LEFT JOIN `irsdeux`.`stock` ON `trans`.`tr_IDproduct2` = `stock`.`ID`
                                LEFT JOIN `irsdeux`.`products` ON `stock`.`id_product` = `products`.`id` 
                                LEFT JOIN `irsdeux`.`team` ON `stock`.`id_team` = `team`.`id`
                                LEFT JOIN `irsdeux`.`local` ON `stock`.`id_local` = `local`.`id`
                                ";
     
     
                    $results = mysql_query($query, $connection);
                    $results2 = mysql_query($query2, $connection);
    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
     <p class="introText">
                        <?php 
     
                           echo '<table id="fileData" width="100%" cellpadding="3" cellspacing="0">';
                            echo '<thead>';
                            // echo '<th style="width: 19px;" class="ui-state-default"></th>';
    						echo '<th class="ui-state-default" style="width: 40px; text-align: center;">'. $LANG['date'] .'</th>';
    						echo '<th style="width: 60px; text-align: center;" class="ui-state-default">'. $LANG['trans_no'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_team1'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_local1'] .'</th>';
    						echo '<th style="width: 10px; text-align: center;" class="ui-state-default">'. "->" .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_team2'] .'</th>';
    						echo '<th style="width: 40px; text-align: center;" class="ui-state-default">'. $LANG['trans_local2'] .'</th>';
    						//echo '<th style="width: 90px; text-align: center;" class="ui-state-default">'. $LANG['product_code'] .'</th>';
                            echo '<th class="ui-state-default" style="width: 150px; text-align: left;">'. $LANG['product_description'] .'</th>';
                            echo '<th style="width: 65px; text-align: center;" class="ui-state-default">'. $LANG['quantity'] .'</th>';
                            echo '<th style="width: 80px; text-align: center;" class="ui-state-default">'. $LANG['customer'] .'</th>';
                            //echo '<th style="width: 80px; text-align: center;" class="ui-state-default">'. $LANG['reference'] .'</th>';
    						echo '<th style="width: 40px; padding-right: 5px; padding-left: 5px; text-align: center;" class="ui-state-default" id="task">'. $LANG['actions'] .'</th>';
                            echo '</thead>';
                            echo '<tbody>';
    						while ($row = mysql_fetch_assoc($results) AND $row1 = mysql_fetch_assoc($results2)) {
     
                            	$orderdate = strtotime($row['tr_date']);
    				$fdate = strftime("%d/%m/%Y", $orderdate);
                                echo '<tr>';
    							echo '<td class="txtCenter">' . $fdate . '</td>';
    									 echo '<td class="txtCenter">' . $row['tr_no'] . '</td>';
                                echo '<td class="txtCenter">' . $row['team'] . '</td>';
                                echo '<td class="txtCenter">' . $row['local_name'] . '</td>';
     
     
                                echo '<td class="txtCenter">' . "->" . '</td>';
     
     
                                echo '<td class="txtCenter">' . $row1['team'] . '</td>';
                                echo '<td class="txtCenter">' . $row1['local_name'] . '</td>';
    						    echo '<td class="txtLeft">' . $row1['pr_name'] . '</td>';
    						    echo '<td class="txtCenter">' . $row1['tr_quantity'] . '</td>';
    						    echo '<td class="txtCenter">' . $row1['name'] . '</td>';
     
                                 echo '<td class="txtCenter" id="task1">
    								<a href="edit_trans.php?trans_id=' . $row['id'] . '">
    								<img src="images/edit.png" width="16" height="16" title="edit trans" style="margin:1px;"/>
    								</a> 
    								
    								<a href="view_trans.php?trans_id=' . $row['id'] . '" onClick="return confirm(\''. $LANG['alert_trans_del'] .'\');">
    								<img src="images/delete.png" width="16" height="16" title="delete trans" style="margin:1px;"/>
    								</a>
    								</td>'; 
                                echo '</tr>';
                            }

  5. #5
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si je comprends bien "tr_IDproduct" ce n'est pas un "product" c'est en fait un id dans la table "stock" correspondant au stock de départ et "tr_IDproduct2" c'est la même pour le stock d'arrivé ?
    La première chose à faire serait de donner des noms cohérents et explicites.
    Il faut donc faire une jointe pour le stock de départ et une jointure pour le stock d'arrivée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT `trans`.*,`team`.*,`local`.*,`stock_depart`.*, `stock_arrive`.*,`products`.*,`user`.* FROM trans
                                LEFT JOIN `irsdeux`.`user` ON `trans`.`customer` = `user`.`id` 
                                LEFT JOIN `irsdeux`.`stock` as stock_depart ON `trans`.`tr_IDproduct` = stock_depart.`ID`  
                                LEFT JOIN `irsdeux`.`products` ON stock_depart.`id_product` = `products`.`id` 
                                LEFT JOIN `irsdeux`.`team` ON `stock_depart.`id_team` = `team`.`id`
                                LEFT JOIN `irsdeux`.`local` ON stock_depart.`id_local` = `local`.`id`
                                LEFT JOIN `irsdeux`.`stock` as stock_arrive ON `trans`.`tr_IDproduct` = stock_depart.`ID`  
                                LEFT JOIN `irsdeux`.`team` ON `stock_arrive .`id_team` = `team`.`id`
                                LEFT JOIN `irsdeux`.`local` ON stock_arrive .`id_local` = `local`.`id`
    Et remplacer toutes ces * du SELECT par le nom des colonnes dont tu as réellement besoin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Personnel
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Erreur @#&"'!!!
    Bonsoir,
    Bon ben c'est pas la joie....

    #1066 - Not unique table/alias: 'team'
    Donc j'ai mis un alias pour les team's et les locaux:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT `trans`.*,`team`.*,`local`.*,`stock_depart`.*, `stock_arrive`.*,`products`.*,`user`.* FROM trans
        LEFT JOIN `irsdeux`.`user` ON `trans`.`customer` = `user`.`id` 
        LEFT JOIN `irsdeux`.`stock` as stock_depart ON `trans`.`tr_IDproduct` = stock_depart.`ID`  
        LEFT JOIN `irsdeux`.`products` ON stock_depart.`id_product` = `products`.`id` 
        LEFT JOIN `irsdeux`.`team` as teamA ON `stock_depart`.`id_team` = `team`.`id`
        LEFT JOIN `irsdeux`.`local` as localA ON stock_depart.`id_local` = `local`.`id`
        LEFT JOIN `irsdeux`.`stock` as stock_arrive ON `trans`.`tr_IDproduct2` = stock_depart.`ID`  
        LEFT JOIN `irsdeux`.`team` as teamB ON `stock_arrive`.`id_team` = `team`.`id`
        LEFT JOIN `irsdeux`.`local` as localB ON stock_arrive .`id_local` = `local`.`id`

    Et là Pim !!!! Erreur #1051 - Unknown table 'team'
    Donc OK je vais te dire qu'elle existe cette table (oui je deviens un peu dingue .... je parle à ma requete)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT `trans`.*,`team`.*,`local`.*,`stock_depart`.*, `stock_arrive`.*,`products`.*,`user`.* FROM trans, team
        LEFT JOIN `irsdeux`.`user` ON `trans`.`customer` = `user`.`id` 
        LEFT JOIN `irsdeux`.`stock` as stock_depart ON `trans`.`tr_IDproduct` = stock_depart.`ID`  
        LEFT JOIN `irsdeux`.`products` ON stock_depart.`id_product` = `products`.`id` 
        LEFT JOIN `irsdeux`.`team` as teamA ON `stock_depart`.`id_team` = `team`.`id`
        LEFT JOIN `irsdeux`.`local` as localA ON stock_depart.`id_local` = `local`.`id`
        LEFT JOIN `irsdeux`.`stock` as stock_arrive ON `trans`.`tr_IDproduct2` = stock_depart.`ID`  
        LEFT JOIN `irsdeux`.`team` as teamB ON `stock_arrive`.`id_team` = `team`.`id`
        LEFT JOIN `irsdeux`.`local` as localB ON stock_arrive .`id_local` = `local`.`id`
    Et maintenant #1051 - Unknown table 'local'
    Je baisse les bras pour ce soir ......

  7. #7
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    il faut utiliser l'alias dans la condition de jointure aussi :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT JOIN `irsdeux`.`team` as teamA ON `stock_depart`.`id_team` = teamA .`id`
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [AC-2013] Ajout d'une entrée texte dans une gestion des stocks sous Access
    Par Ikart dans le forum VBA Access
    Réponses: 9
    Dernier message: 16/05/2016, 11h34
  2. Historique des mouvements dans une gestion de stock
    Par jochevc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/06/2010, 10h52
  3. Enchainement de requête dans une même procedure stockée
    Par dahu17 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/04/2007, 11h22
  4. Quel langage pour une gestion des stocks-client-caisse ?
    Par plex dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/04/2007, 18h56
  5. Transfert de tableau dans une session
    Par mimi74 dans le forum ASP
    Réponses: 2
    Dernier message: 08/12/2006, 10h20

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