par
yoggiz » 25 mars 2006, 00:22
Alors voilà le truc... j'ai créé une bd d'une seule table (je sais... je sais... je devrais faire plusieurs tables avec... mais bon je fais un essai...)
Voici la table mysql:
Champ Type Null Défaut
id_commande int(11) Non
date date Non 0000-00-00
type varchar(30) Non
client varchar(50) Non
num_transaction varchar(30) Non
transporteur varchar(50) NULL
type_transporteur varchar(15) Non
produit varchar(15) Non
qte_attendu varchar(10) Non 0
qte_recu varchar(10) NULL
A partir de cette table, je veux établir mon inventaire. Je dois donc faire une requête sur le produit (ex.: blé) et déterminer si je l'ai recu ou expédié (champ 'type'). Ensuite, je dois faire la somme des réception du produit moins la somme des expéditions du produits. Exemple, tout ce que j'ai recu de blé moins tout ce que j'ai expédié de blé.
J'ai monté le script suivant pour faire cette requête et savoir mon inventaire.
<?php
// Ce script récupère et affiche tous les enregistrements de la table "gestion"
$titre_page ='Inventaire';
include ('entete.inc');
// information pour la connection à le DB
require_once ('mysql_connect.php');
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT produit, SUM(qte_recu) FROM gestion where type="Expédition" group by produit';
$result1 = mysql_query($select,$dbc) or die ('Erreur : '.mysql_error() );
$select = 'SELECT produit, SUM(qte_recu) FROM gestion where type="Reception" group by produit';
$result2 = mysql_query($select,$dbc) or die ('Erreur : '.mysql_error() );
$result3=$result2-$result1;
$total = mysql_num_rows($result3);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF" table align center="center" cellspacing="5" cellpadding="5">'."\n";
// première ligne on affiche les titres des colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Produit</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Inventaire</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage les résultats
while($row = mysql_fetch_array($result3)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['produit'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$result3.'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result3);
?>
</body>
</html>
Tout me semble logique dans le script (n'oublié pas que je suis un débutant... donc c'est sûr que ca ne l'ai pas....

) mais j'ai l'erreur suivante qui apparaît:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\inventaire_try.php on line 21
Pas d'enregistrements dans cette table...
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\inventaire_try.php on line 45
Quelqu'un a une idée... suggestion pour corriger mon problème?
Alors voilà le truc... j'ai créé une bd d'une seule table (je sais... je sais... je devrais faire plusieurs tables avec... mais bon je fais un essai...)
Voici la table mysql:
[php]
Champ Type Null Défaut
id_commande int(11) Non
date date Non 0000-00-00
type varchar(30) Non
client varchar(50) Non
num_transaction varchar(30) Non
transporteur varchar(50) NULL
type_transporteur varchar(15) Non
produit varchar(15) Non
qte_attendu varchar(10) Non 0
qte_recu varchar(10) NULL
[/php]
A partir de cette table, je veux établir mon inventaire. Je dois donc faire une requête sur le produit (ex.: blé) et déterminer si je l'ai recu ou expédié (champ 'type'). Ensuite, je dois faire la somme des réception du produit moins la somme des expéditions du produits. Exemple, tout ce que j'ai recu de blé moins tout ce que j'ai expédié de blé.
J'ai monté le script suivant pour faire cette requête et savoir mon inventaire.
[php]
<?php
// Ce script récupère et affiche tous les enregistrements de la table "gestion"
$titre_page ='Inventaire';
include ('entete.inc');
// information pour la connection à le DB
require_once ('mysql_connect.php');
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT produit, SUM(qte_recu) FROM gestion where type="Expédition" group by produit';
$result1 = mysql_query($select,$dbc) or die ('Erreur : '.mysql_error() );
$select = 'SELECT produit, SUM(qte_recu) FROM gestion where type="Reception" group by produit';
$result2 = mysql_query($select,$dbc) or die ('Erreur : '.mysql_error() );
$result3=$result2-$result1;
$total = mysql_num_rows($result3);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table bgcolor="#FFFFFF" table align center="center" cellspacing="5" cellpadding="5">'."\n";
// première ligne on affiche les titres des colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Produit</u></b></td>';
echo '<td bgcolor="#669999"><b><u>Inventaire</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage les résultats
while($row = mysql_fetch_array($result3)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['produit'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$result3.'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result3);
?>
</body>
</html>
[/php]
Tout me semble logique dans le script (n'oublié pas que je suis un débutant... donc c'est sûr que ca ne l'ai pas.... :lol: ) mais j'ai l'erreur suivante qui apparaît:
[php]
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\inventaire_try.php on line 21
Pas d'enregistrements dans cette table...
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\inventaire_try.php on line 45
[/php]
Quelqu'un a une idée... suggestion pour corriger mon problème?