caddie électronique - PHP - Programmation
Marsh Posté le 04-01-2009 à 10:37:28
Bon, commence stp par éditer ton post et mettre ton code entre balises :
[ code=php]
[/code]
Pour qu'on y voit plus clair.
Ensuite : Quel est le problème ?
Marsh Posté le 04-01-2009 à 11:34:17
Je suis sûr qu'il est possible de réduire la portée du problème et de trouver un cas de reproduction plus élémentaire, à supposer que tu décrives quel est le problème.
Je suis tout aussi sûr que les phrases débutent par une majuscule et se terminent par un point.
Rassure-moi : tu ne vas *réellement* utiliser ce panier électronique pour vendre des marchandises dans la vraie vie?
Marsh Posté le 04-01-2009 à 11:40:29
sinon donne-nous le site qu'on aille y faire un tour
Marsh Posté le 04-01-2009 à 11:45:54
NewsletTux a écrit : sinon donne-nous le site qu'on aille y faire un tour |
Ce n'est pas parce que le monsieur écrit mal et qu'il oublie de décrire son probème qu'il faut être méchant.
Spoiler : Par contre, si ce truc passe en production... |
Marsh Posté le 04-01-2009 à 11:46:54
sircam a écrit : Je suis sûr qu'il est possible de réduire la portée du problème et de trouver un cas de reproduction plus élémentaire, à supposer que tu décrives quel est le problème. |
ça m'est déjà arrivé d'être appelé pour effectuer une consultance sur des scripts en prod de cette qualité là... Comme d'ab c'est une question d'argent.
Il y a des gens qui engagent des petits étudiants (comme moi) pour surveiller le boulot d'autres petits étudiants (qui pondent du script de merde) juste parce qu'on est infiniment moins cher que des professionnels...
Marsh Posté le 04-01-2009 à 11:54:25
Et c'est reparti pour ce bon vieux débat... *sigh*
Marsh Posté le 04-01-2009 à 11:56:10
Non justement, à mon avis faut juste que l'auteur s'exprime mieux, et je suis sûr (je suis très positiviste) que c'est juste un exercice qu'il fait pour apprendre le PHP
Donc une fois qu'il se sera expliqué, on corrigera et tout repartira comme dans le meilleur des mondes
Marsh Posté le 04-01-2009 à 12:44:19
bonjour
je tiens a signaler qu'il sagit d'un petit travail que j'effectue pour mes études ça n'a rien de professionnel
le problème de ce script c quand j'appuie sur le lien suivant:
<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';
sachant que $ligne[0] concerne le produit qu'on a choisit et qu'il es déja affiché a travers une requete vers la base
et $quantite est une variable que le client précisera dans une zone Jtextfield.
ceci dit en cliquant sur le liant ça se dirige vers la page creation.php
qui contient le script suivant:
<?php
session_start();
require('includes/connection.php');
//démarrage de la session
$ref = $_GET['prod']; //référence du produit choisi
if(isset($ref )){ //si $ref n'est pas vide
if(!isset($_SESSION['caddie'])){ //si le caddie n'a pas été encore créé
$_SESSION['caddie'] = array(); //création de la variable de session
}
if(isset($_SESSION['caddie'][$ref ])) { //si ce produit a déjà été choisi
$_SESSION['caddie'][$ref ]++; //ajoute 1 a la quantité
}else {
$_SESSION['caddie'][$ref ] = 1; //si 1er ajout, met la quantité à 1
}
}
//Requête pour récupérer toutes les informations des produits et calcul du prix total.
foreach ($_SESSION['caddie'] as $idProduit =>$quantite) {
$rq="SELECT * FROM produit where code_pdt='$idProduit'";
echo "<table border='2' width='800' height='800'>";
$res=mysql_query($rq)or die("erreur dans la requete" );
echo "<tr> <th>Nom</th> <th>prix</th> <th>quantite</th> <th>Prix total</th></tr>";
while ($ligne=mysql_fetch_array($res)){
$nom=$ligne[0];
$prix_unitaire=$data[4];
if( ! isset( $prix_total) ) $prix_total =0; // l'initialiser si elle n'existe pas
$prix_total='$prix_unitaire*$quantite';
if( ! isset( $icaddie) ) $caddie =0; // l'initialiser si elle n'existe pas
$caddie += $prix_totals;
echo"<tr><td>$nom</td><td>$prix_unitaire</td><td>$quantite</td><td>prix_total</td><td>$caddie euro</td>";
echo"</tr>";
}
echo"</table>";
}
?>
et que le résultat d'affichage du panier donne quasiment rien de cke je m'y attend sauf le message suivant 100 euro, au deuxième clic 200 euro et ça ne s'arrete de s'incrémenter.
j'espère que je me suis enfin bien exprimé
merci
Marsh Posté le 04-01-2009 à 13:02:26
Bon sang, fout ton code entre balises code (comme je l'ai dit plus haut) sinon personne ne t'aidera
Marsh Posté le 04-01-2009 à 13:35:21
bonjour
je tiens a signaler qu'il sagit d'un petit travail que j'effectue pour mes études ça n'a rien de professionnel
le problème de ce script c quand j'appuie sur le lien suivant:
<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';
sachant que $ligne[0] concerne le produit qu'on a choisit et qu'il es déja affiché a travers une requete vers la base
et $quantite est une variable que le client précisera dans une zone Jtextfield.
ceci dit en cliquant sur le liant ça se dirige vers la page creation.php
qui contient le script suivant:
Code :
|
et que le résultat d'affichage du panier donne quasiment rien de cke je m'y attend sauf le message suivant 100 euro, au deuxième clic 200 euro et ça ne s'arrete de s'incrémenter.
j'espère que je me suis enfin bien exprimé
merci
Marsh Posté le 08-01-2009 à 13:04:36
Rajoute "error_reporting (E_ALL ^ E_STRICT);" une ligne en dessous du premier "<?php" et admire le résultat.
Ensuite tu liras le spoiler ci-dessous pour les explications si tu ne trouves pas tout seul. A noter que quasiment toutes tes erreurs sont des erreurs d'inattention.
Spoiler : $ligne[0] et $data[4] ??? |
PS : Au fait, t'as pensé à regarder le code de la page reçu par le navigateur et pas juste ce que le navigateur affiche à l'écran?
Marsh Posté le 08-01-2009 à 18:12:08
mannou83 a écrit : bonjour
|
Euh là tu ne saisis pas très bien le problème :
Tu crées une variable $ref avec comme valeur $_GET['ref']. Sauf que si $_GET['ref'] n'est pas configuré, $ref sera vide !
Puis tu testes $ref avec isset. Pour rappel, isset teste l'existence d'une variable, or, ce test renverra toujours TRUE puisque $ref est défini juste au dessus.
Tu devrais le tester avec empty ou avec is_numeric
Marsh Posté le 04-01-2009 à 02:21:08
salut
ça fait une semaine que je travaille sur ça et j'arrive a rien Sad
j'espère qu'on pourra m'aider sur ce forum
voila ma page creation.php qui vise a crée panier et l'afficher:
<?php
session_start();
require('includes/connection.php');
//démarrage de la session
$ref = $_GET['prod']; //référence du produit choisi
if(isset($ref )){ //si $ref n'est pas vide
if(!isset($_SESSION['caddie'])){ //si le caddie n'a pas été encore créé
$_SESSION['caddie'] = array(); //création de la variable de session
}
if(isset($_SESSION['caddie'][$ref ])) { //si ce produit a déjà été choisi
$_SESSION['caddie'][$ref ]++; //ajoute 1 a la quantité
}else {
$_SESSION['caddie'][$ref ] = 1; //si 1er ajout, met la quantité à 1
}
}
//Requête pour récupérer toutes les informations des produits et calcul du prix total.
foreach ($_SESSION['caddie'] as $idProduit =>$quantite) {
$rq="SELECT * FROM produit where code_pdt='$idProduit'";
echo "<table border='2' width='800' height='800'>";
$res=mysql_query($rq)or die("erreur dans la requete" );
echo "<tr> <th>Nom</th> <th>prix</th> <th>quantite</th> <th>Prix total</th></tr>";
while ($ligne=mysql_fetch_array($res)){
$nom=$ligne[0];
$prix_unitaire=$data[4];
if( ! isset( $prix_total) ) $prix_total =0; // l'initialiser si elle n'existe pas
$prix_total='$prix_unitaire*$quantite';
if( ! isset( $icaddie) ) $caddie =0; // l'initialiser si elle n'existe pas
$caddie += $prix_totals;
echo"<tr><td>$nom</td><td>$prix_unitaire</td><td>$quantite</td><td>prix_total</td><td>$caddie dinars</td>";
echo"</tr>";
}
echo"</table>";
}
?>
voila le liende la page ki envoi vers le lien:echo'<a href="creation.php?prod=<?php echo $ligne[0];?>&qte=<?php echo $quantite;?>action=ajout">Ajouter au panier</a>';
j'espère trouver de l'aide
merci Rolling Eyes