begin process at 2012 05 31 04:26:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

PHP/SQL code pour trier des produits (fonctionne en local mais pas sur internet)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP/SQL code pour trier des produits (fonctionne en local mais pas sur internet)

mercredi 9 avril 2008 à 20:24:43 | PHP/SQL code pour trier des produits (fonctionne en local mais pas sur internet)

Uga

j'ai réalisé (enfin essayé) une page qui affiche des produits (9 par page) et qui calcule le nombre de produit total dans la BDD pour générer le nombre de pages nécessaires pour tous les afficher. jusque la pas de soucis mais j'ai également voulu réaliser un formulaire afin que le visiteur puisse trier les produits soit par défaut (nom) soit par prix (en haut du code).

Sur Easyphp en local pas de soucis tout fonctionne, lorsque l'on valide les produits se trient et lorsque l'on change de page restent triés. Seulement, une fois mis ce script sur le net, il n'y a plus rien qui marche (c'est exactement le même que celui en local exception faite des codes pour se loguer à la BDD qui sont justes.)

Je ne suis qu'un débutant en PHP donc j'avoue me sentir largué par ce problème ^^ (je pense qu'il peut s'agir d'un problème de norme PHP mais je sais pas où ^^ )

Voila en espérant avoir été clair sur ce qui bug (le tri). Merci d'avance ! :(

<code type="php">
<div class="liste_sac_selection">
<?phpecho('<form action="index.php?page=liste_produit&num_page='.$_GET['num_page'].'" method="post">') ;?> afficher par :
                <select name="affichage">
                                <option value="id_produit">d&eacute;faut</option>
                                <option value="prix">prix</option>
                </select>
                <input type="submit" value="valider" class="button"/>
        </form>
</div>                 
 
<?php
mysql_connect("*******", "******", "******");
mysql_select_db("*****");
 
//on recup le mode d'affichage (ordre) si il existe   (sinon, on fait par id_produit)
if(isset($_POST['affichage']) == FALSE  && (isset($_GET['affichage']) == FALSE))
{
        $affichage = "id_produit" ;
}
elseif(isset($_POST['affichage']))
{$affichage = $_POST['affichage'];}
 
else
{$affichage = $_GET['affichage'];}
 
//on recup les éventuels ordre par matiere ou le prix minimum (pour les pages > 1)
if((isset($_GET['matiere']) == FALSE) || (empty($_GET['matiere'])))
{
        $where = "";
        $_GET['matiere'] = "";//on crée la variable si elle n'existe pas
}
else
{$where = (' WHERE `matiere`="'. $_GET['matiere'].'"') ;}
 
// CALCUL DU NOMBRE DE PAGE //
$req_ligne = mysql_query('SELECT * FROM produit'.$where.';');
$nbr_produit = mysql_num_rows($req_ligne);
mysql_free_result($req_ligne)
                                       
$nb_page = $nbr_produit / 9 ;  
if(($nbr_produit % 9) != 0)
        {$nb_page = $nb_page + 1 ;}
 
$nbpr = (($_GET['num_page'] - 1) *9);
$nbpr_fin = $nbpr + 9;
$num_page = $_GET['num_page'];
 
// On récupère les produit
$retour = mysql_query('SELECT * FROM produit'. $where .' ORDER BY "'.$affichage.'" ASC LIMIT '.$nbpr.' , '.$nbpr_fin.';');
 
$id=1;
 
 
echo('<table>');
       
$produits_restants=$nbr_produit;
for($i=1 ; $i<=3 ; $i++)// les lignes
{              
       
        echo('<tr>');
        //echo($tableau[$id]["modele"]);
        for($j=1 ; $j<=3 ; $j++)// les colonnes
        {       
                if($produits_restants >= 1)
                {
                       
                        $nb_produits_mis = 0;
                        while($nb_produits_mis < 1)
                        {
                                $donnees = mysql_fetch_array($retour);
                                                               
                                if(isset($donnees["nom_produit"]))
                                {
                                        $id = $donnees['id_produit'];
                                        $nom_produit = $donnees["nom_produit"];
                                        $prix = $donnees["prix"];
                                        $image1 = $donnees["image1"];
                                       
                                        //echo('produit restant : '.$produits_restants);
                                        echo('<td class="visible">');
                                        echo('<a href="index.php?page=selection_produit&id='.$id.'&num_page='.$num_page.'&matiere='.$_GET['matiere'].'"><img src="image/sac/'.$image1.'" alt="image sac" class="image_liste_produit"/></a>');
                                        echo('<table class="prix_produit"> <tr><td align="right">'.$prix.' &euro;</td></tr></table>');
                                        echo('<table class="modele_produit"> <tr><td align="center">'.$nom_produit.'</td></tr></table>');
                                       
                                        echo('</td>');
                                        $produits_restants =$produits_restants-1;                                              
                                        $nb_produits_mis ++;
                                       
                                }
                                else
                                {$nb_produits_mis ++;}
                        }//finwhile
                }
 
        }
        echo('</tr>');
//$j=4; 
}// fin du for
 
mysql_free_result($retour);
mysql_close();
 
?>
</table>
 
<center>
        <div class="liste_sac_page"> Page
                <?phpfor($k = 1 ; $k<= $nb_page ; $k++)
                                {echo('<a href="index.php?page=liste_produit&num_page='.$k.'&affichage='.$affichage.'">'.$k.'</a>-');}
        ?>
         </div></center>
</code>

vendredi 11 avril 2008 à 14:27:05 | Re : PHP/SQL code pour trier des produits (fonctionne en local mais pas sur internet)

Axe971

Bonjour,

Pour commencer ton code est à mon avis pas très sécurisé. En fonction de la configuration de ton serveur Web (Apache)  tu peux être sujet à des injections SQL. Cf (utilisation des variables $_POST et $_GET dans tes requêtes).
Deuxio, je n'ai pas vu d'erreur particulière. Mais il faut dire qu'autant code ce n'est pas aisé à lire.
Pour finir, il existe des scripts (qui ont fait leurs preuves) pour réaliser ce que tu veux faire. Regarde du coté de PEAR, ou encore des CMS.

Bonne chance,


Cette discussion est classée dans : page, affichage, echo, produit, produits


Répondre à ce message

Sujets en rapport avec ce message

Affichage des resultat d'une requete sur plusieur pages [ par zizou94 ] Bonjour a tous Voila je suis toujours sur la programmation de mon premier site et j ai un souci. Je souhaiterai limiter l'affichage de mes résultat su Vitesse d'affichage [ par kishkaya ] Bonjour tout le monde, j'aimerai savoir si, comme je le crois : echo 'salut tout le monde';met moins de temps a etre traité que : echo "salut tout le plusieurs produit sur une meme commande [ par lebelge95 ] Bonjour. Je voudrai savoir si quelqu'un aurait déjà un bout de code ou un entier ( ) qui permet de gérer un enregistrement d'une commande, de plusieu Problème d'envoi information POST avec Input dynamique dans un tableau [ par Const4ntine ] Bonjour,J'ai un petit souci, je ne suis pas expert en Php, donc j'ai forcément fait quelques choses qui n'allait pas, mais que je ne vois pas.Pourriez affichage page par page avec des point (...) [ par slashf ] salut a tous donc voilà j'ai un scripte qui marche très bien jusque là pas de souci sauf que si j'ai un résultats de 100 pages ça va être trop encombé affichage page par page [ par slashf ] bonjour a tous, voilà mon petit souci j'ai cherché sur google mais rien :( du coup j'ai pas eu le choix que de poster ce message, se que je cherche a problème de sécurités des pages [ par tiwtiwa11 ] bonjour les amis!!! j'ai eu un petit problème en sécurisant mes pages dans la page de login ,en entrant les infos correctes de l'utilisateur en pass $_POST ne récupère pas les infos d'une page à l'autre [ par ragmo ] Bonjour à tous, Je vous expose mon souci : Sur une page produits j'ai les produits affichés, chacun dans son cadre avec les liens "En savoir plus .." Problème d'affichage d'un fichier texte sur une page web. [ par guimat123 ] Bonjour. Dans mon code PHP je souhaite afficher un texte enregistré en .txt J'ai découvert la balise qui permet de conserver le formatage du texte. Pb Affichage requete mysql dans un menu deroulant [ par KL2009 ] Bonjour,J'essaye d'afficher la valeur d'un champ de ma table sous mysql dans un menu déroulant, la connexion à la base à l'air correcte mais à l'affic


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales