L2J-FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Forum pour réunir les administrateurs de serveur L2
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 [Resolu]Aide Script recipe (Php)

Aller en bas 
+2
Jules
Akira
6 participants
AuteurMessage
Akira

Akira


Nombre de messages : 160
Age : 39
Date d'inscription : 08/01/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty25/01/09, 09:06 pm

bonsoir a tous

voila comme précédament, je suis entraint de codé pour mo site un petit dropcalc perso que j'ai presque finis d'ailleur.... avec toutes les fonctionnalités qui vont avec...

Rechercher un recipe, mobs, (armures, armes, items) quels mobs le drops ou le spoils avec le taux chance et les autre item que possede le mobs, ça localisation sur une map (seul les GrandBoss ne sont pas localisable) et aussi quel npc tradeur vend l'item...

la possiblité de voir si l'item est craftable ou non

c'es la que j'ai besoin de votre aide...

le grand jules ma déja fourni des renseignents sur les tables a utilisé et mon permis de codé une parite [Resolu]Aide Script recipe (Php) Recipe

en grod la je liste que les ingrediants principaux, je voudrais encore detaillé.

voici mon code

Code:
echo'<table width="345" border="1">
  <tr>
    <td width="32" height="30"><span class="Style2">Items</span></td>
    <td><span class="Style2">Nom</span></td>
    <td width="80"><span class="Style2">Quantité</span></td>
  </tr>';
$rectem = mysql_query("SELECT rid, q, item FROM recitems WHERE rid ='".$res['id']."'");
  while($res2=mysql_fetch_array($rectem))
{

echo'<tr>
    <td ><img src="top/images/items/'.$res2['item'].'.gif"></td>';
   $item = $res2['item'];
   $item_name=mysql_query("SELECT name FROM etcitem WHERE item_id='".$item."'");
   $res3 = mysql_fetch_array($item_name);
   echo'<td>  <span class="Style2">'.$res3['name'].'</span></td>';
    echo'<td><center><span class="Style2">'.$res2['q'].'</span></center></td>';
   
  echo'</tr>';
  }
  echo'</table>';

je ne sais pas comment faire pour l'obligé a detaillé l'item principal confused

si quelqu'un a une idée je suis preneur scratch

merci de votre aidé

Cordialemnt akira


Dernière édition par Akira le 28/01/09, 04:45 am, édité 2 fois
Revenir en haut Aller en bas
Jules

Jules


Nombre de messages : 384
Localisation : Rome
Date d'inscription : 11/04/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty25/01/09, 10:26 pm

Bon alors sur ce coup, c'est mauvais...
Code:
while($res2=mysql_fetch_array($rectem))
{

echo'<tr>
    <td ><img src="top/images/items/'.$res2['item'].'.gif"></td>';
  $item = $res2['item'];
  $item_name=mysql_query("SELECT name FROM etcitem WHERE item_id='".$item."'");
Tu imbriques une requête dans une boucle Shocked ? Dans le principe, si t'a 7589 items à afficher, tu vas faire 7589 requêtes ?

Plus sérieusement, charges d'abord les items dont tu as besoin dans un tableau (array) qui contient lui même des tableaux (array) . En gros, tu vas devoir faire une requête qui va lire les items 1 à 1 et remplir des "cases" d'un tableau nommé "items" : $items[une variable qui s'incrémente à chaque boucle]. Dans cette variable, tu vas devoir remplir un autre tableau :
$item[1]['nom']
$item[1]['id']
$item[1]['crystal_type']
$item[1][etc etc etc etc]
$item[2]['nom']
$item[2]['id']
$item[2]['crystal_type']
$item[2][etc etc etc etc]
etc etc etc.

Une fois que tu auras ce tableau de tableaux qui représente les items de la DB, tu pourras le manipuler comme tu veux. Certes, ça va faire un peu chier php (donc apache), mais ça ne fera pas chier sql (et donc ni apache ni php qui va avec).

Il te faudra aussi faire un marqueur pour repérer les items qui sont craftables ou non. Et l'item parcouru est craftable, on lance la procédure, si non, on oublie. De cette façon, tu auras une boucle qui se répètera autant de fois qu'un item craftable est demandé, qu'il soit dans la liste des ingrédients ou non, qu'il soit de premier rang ou non.

Si t'as pigé le principe, l'algo n'est pas du tout compliqué à pondre, et une fois l'algo pondu, le code vient tout seul.

Bon courage.

PS : Jules est particulièrement intéressé par ton codage en cours. Peux-tu lui faire parvenir un exemplaire (archive du dropcalc prêt à tourner en local, ou presque) de ce qui est déjà fait qu'il regarde ce que tu devrais optimiser/sécuriser/arranger ?
Revenir en haut Aller en bas
https://l2jfr.jeun.fr/search.forum
Psychokiller1888

Psychokiller1888


Nombre de messages : 114
Age : 40
Localisation : Suisse
Date d'inscription : 24/02/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty25/01/09, 10:39 pm

Pour l'avoir fait completement, je te dis que tu vas en chier pour le faire fonctionner correctement. Moi j'ai tourné comme ça:

Code:

      $ingredients_lists = explode(";;", $ingredients_list);

      foreach($ingredients_lists as $ingredients)
      {
         $ingredient_tab = explode(":", $ingredients);
         $ingredient = $ingredient_tab[0];
         $nbr = $ingredient_tab[1];

         $multiplicateur = $nbr;

         $ingredient_name = get_item($ingredient);

         $rec_icon = "<img src=\"./images/sfboard/items/".$ingredient.".gif\" width=\"32\" height=\"32\">";
         $tree .= "<br>     ".$puce1."".$rec_icon." ".$nbr." x <a href=\"/portal.php?pid=34&search=".$ingredient."\" class=\"menulink\">".$ingredient_name."</a>";

         $sql = "SELECT ingredients FROM recipes WHERE item_id = '$ingredient'";
         $result = mysql_query($sql);
         $count = mysql_num_rows($result);
         if ($count > 0)
         {
            $line = mysql_fetch_array($result);

            $ingredients_list_2 = $line['ingredients'];

            $ingredients_lists_2 = explode(";;", $ingredients_list_2);

            foreach($ingredients_lists_2 as $ingredients_2)
....................................
         else
         {
            if (array_key_exists($ingredient, $mat_base))
            {
               $mat_base[$ingredient][2] = $mat_base[$ingredient][2] + $multiplicateur;
            }
            else
            {
               $store = array($ingredient,$ingredient_name,$multiplicateur);
               $mat_base[$ingredient] = $store;
            }
         }

Ainsi de suite, tu recommences.

Bon, j'ai fais plus violent moi, j'ai encore ajouté un compteur de matériaux de base, non craftable qu'il faut pour le recipe
Revenir en haut Aller en bas
phpsteuf

phpsteuf


Nombre de messages : 570
Date d'inscription : 17/03/2007

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty26/01/09, 12:27 pm

Code:
  while($res2=mysql_fetch_array($rectUm))

Y'a un faute geek

quoi c'est pas drôle ? Ca va, j'ai pas dormis depuis samedi soir encore j'ai une excuse pour les vannes pourries du jour Smile

Sinon pour enlever la requête CRACRA BOUDIN dans l'itération, et sans se torturer l'esprit avec des tableau PHP dans tous les sens, une petite jointure tout simplement :


Code:
 
echo'<table width="345" border="1">
  <tr>
    <td width="32" height="30"><span class="Style2">Items</span></td>
    <td><span class="Style2">Nom</span></td>
    <td width="80"><span class="Style2">Quantité</span></td>
  </tr>';
$rectem = mysql_query("SELECT etc.name,re.rid, re.q, re.item
              FROM recitems re
              INNER JOIN etcitem etc ON etc.item_id = re.item
              WHERE re.rid ='".$res['id']."'");
  while($res2=mysql_fetch_array($rectem))
{

echo'<tr>
    <td ><img src="top/images/items/'.$res2['item'].'.gif"></td>';
  $item = $res2['item'];
  echo'<td>  <span class="Style2">'.$res2['name'].'</span></td>';
    echo'<td><center><span class="Style2">'.$res2['q'].'</span></center></td>';
 
  echo'</tr>';
  }
  echo'</table>';

Attention, bien faire attention que etc.item_id et re.item soit bien indexés !
Deuxième alerte : mysql_query("SELECT etc.name,re.rid, re.q, re.item
FROM recitems re
INNER JOIN etcitem etc ON etc.item_id = re.item
WHERE re.rid ='".$res['id']."'");
Bouhhh caca pas bien injection SQL possible.

Voilà plus rien à ajouter Smile
Revenir en haut Aller en bas
http://www.loreal.com
Akira

Akira


Nombre de messages : 160
Age : 39
Date d'inscription : 08/01/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty26/01/09, 05:11 pm

Re

comme je vous les dit, je suis novice ca doit ce voir. au fure et a mesure que je code j'aprend sur le ta

Mais bon en 5 mois qui mon permit d'aprendre le php et de codé ce dropcalc si on peu l'apellé comme ça, je crois que j'ai fais un peu de progres mais pas assez. j'en ai bien peur.. scratch

si on regarde de plus près mes codes il y a plein de truck inutile mal codé meme si au final ca mache. c'es pour ca que je suis partie du principe de codé en 3 etapes ..

1° étape: je code le tout apres ... je fais tester la version BETA quelque membres qui souhaite bien sur aporté leur aide (pour me dire ce qui manque et les defaults...)(crétique)

2° étape: rajoue et creations des fonctions (ca evite de repeté dix milles fois la meme chose surtout pour les tableaux...

3°: étape: et oui je securise....

Citation :
Deuxième alerte : mysql_query("SELECT etc.name,re.rid, re.q, re.item
FROM recitems re
INNER JOIN etcitem etc ON etc.item_id = re.item
WHERE re.rid ='".$res['id']."'");
Bouhhh caca pas bien injection SQL possible.

avec un mysql_real_escape_string($res['id']); ça devrai allé non merci pépé steuf.. (comme toujour tu me ratrape en vole Razz)

pour le reste Akira comprend vagement le message de jules... mais bon il c'est pas s'il est en mesure d'en faire autant et go lire des tutos...

Jules a écrit:

PS : Jules est particulièrement intéressé par ton codage en cours. Peux-tu lui faire parvenir un exemplaire (archive du dropcalc prêt à tourner en local, ou presque) de ce qui est déjà fait qu'il regarde ce que tu devrais optimiser/sécuriser/arranger ?

Pk pas dès que j'arrive a l'etape 2 dsl mais pas avant... j'espere que je me comprend et me fera pas ecartelé ou foueté lol..

pour Psychokiller1888: l'utisation de foreach Akira ne connais pas grand chose dessus, a simplement lu quelque tuto qui en parlai mais jamais utilisé en code..


Merci de vore aide..


Dernière édition par Akira le 26/01/09, 05:40 pm, édité 3 fois
Revenir en haut Aller en bas
Psychokiller1888

Psychokiller1888


Nombre de messages : 114
Age : 40
Localisation : Suisse
Date d'inscription : 24/02/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty26/01/09, 05:19 pm

foreach prend chaque element d'un array, un a un, le place dans la variable definie après as et execute les accolade avec, puis recommence jusqu'à ce que le array soit au bout
Revenir en haut Aller en bas
phpsteuf

phpsteuf


Nombre de messages : 570
Date d'inscription : 17/03/2007

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty26/01/09, 05:54 pm

Akira a écrit:

1° étape: je code le tout apres ... je fais tester la version BETA quelque membres qui souhaite bien sur aporté leur aide (pour me dire ce qui manque et les defaults...)(crétique)

2° étape: rajoue et creations des fonctions (ca evite de repeté dix milles fois la meme chose surtout pour les tableaux...

3°: étape: et oui je securise....

J'ai jamais compris pourquoi, au grand pourquoi les novices codent de cette manière Suspect

C'est la meilleurs façon d'oublié pas mal de chose et de laisser des trous partout, pourquoi ne pas tout simplement coder proprement et de façon organisée dès le départ... En plus tu perds un temps fou.

Code:
avec un [b]mysql_real_escape_string($res['id']); [/b]ça devrai allé non merci pépé steuf.. (comme toujour tu me ratrape en vole  :P)

Tu a presque bon, tout dépend de ta config PHP sur ton serveur au niveau des magic_quote_gpc etc... Ca peut être pire que mieux Smile Petit conseil, rechercher sur google "php quote_smart" Wink

Pour foreach : http://fr3.php.net/foreach (Ouai parce que Psycho a un façon bien à lui d'introduire une notion de boucle itérative non incrémentale Smile)
Revenir en haut Aller en bas
http://www.loreal.com
Akira

Akira


Nombre de messages : 160
Age : 39
Date d'inscription : 08/01/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty26/01/09, 07:48 pm

bein d'ici demain des que j'aurais finis la page des recipes et trouvé un hebergeur..

elle sera mise pour en test (Version 0.1-beta)

j'espere voir vos crétiques surtout (jules et pépé(steuf));

donc voila

P.s ne vois pas comment faire pour le recipe lol
Revenir en haut Aller en bas
Akira

Akira


Nombre de messages : 160
Age : 39
Date d'inscription : 08/01/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty28/01/09, 12:12 am

Re et désolé pour le 2eme poste

Après des heures de casse tête avec mon clavier.. j'ai finalement reussi à le terminé, ça n'a pas été facile mais mais le principe es la...

[Resolu]Aide Script recipe (Php) Recipe-suite

merci pour votre aide

PS. vue que la plus part des scripts sont integré a mon site( ) je vais faire un tremplate vite fait pour l'intégré avec tous les script dropcalc pour le test...

je tiendrais au courant...

Merci

Cordialemnnt
Revenir en haut Aller en bas
Grimly

Grimly


Nombre de messages : 601
Date d'inscription : 30/08/2007

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty28/01/09, 11:09 pm

Bien que ton système soit tout beau comme tu le pense, il a un défaut majeur, tu indiques dans chaque sous-produits la quantité de sous-sous-produits pour un seul sous-produit et non pour ton produit final.

Pour résoudre cela, je te propose d'y aller un peu en récursif :

/**
* @param $ident : indentation de l'affichage de tes produits
* @param $product : produit à décrire
* @param $data : données qui viennent du SQL
* @param $multiplicator : multiplicateur
*/
function showNeeds($ident, $product, $data, $multiplicator) {
//...
}
Revenir en haut Aller en bas
Psychokiller1888

Psychokiller1888


Nombre de messages : 114
Age : 40
Localisation : Suisse
Date d'inscription : 24/02/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty29/01/09, 06:19 am

J'ai aussi longtemp reflechis à ce que tu dis Grimly à l'époque effectivement. Il en est ressortis, de la part des joueurs, qu'il faut afficher la quantité d'un sous produit, puisqu'on indique comment crafter un sous produit et non tous en fait... Mais effectivement, ensuite ils m'ont demandé une liste de sous produits aussi, puis une liste de mat de base, ce qui a donné:

[Resolu]Aide Script recipe (Php) Recipecalc


Pour ce faire, il y a un bout de mon code plus haut qui le fait ^^
Revenir en haut Aller en bas
phpsteuf

phpsteuf


Nombre de messages : 570
Date d'inscription : 17/03/2007

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty29/01/09, 10:31 am

Petite remarque à propos de ton code d'ailleurs, et un conseil soit dit en passant donc :

Évitez les :

Code:

$ma_var = "Ma chaine de caractère avec : $ma_var2";

Vous pénalisez les performances de vos script, pour concaténer on utilise plutôt :


Code:

$ma_var = 'Ma chaine de caractère avec : '.$ma_var2;

Ou

Code:

$ma_var = 'Ma chaine de caractère avec : ',$ma_var2;

NB : Le choix du point ou de la virgule est totalement esthétique, les deux étant identiques en terme de performances. Pour t'en convaincre :

http://www.exinsidephp.com/blog/index.php?post/2009/01/27/Optimisation-%3A-La-concat%C3%A9nation2
Revenir en haut Aller en bas
http://www.loreal.com
decarvk




Nombre de messages : 241
Age : 35
Localisation : en france
Date d'inscription : 06/07/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty29/01/09, 01:02 pm

wouah moi qui utilise les " pour mes chaine de charactere je pence que je vais changer sa ^^
Revenir en haut Aller en bas
http://nemerian.apdvm.asso.fr
Akira

Akira


Nombre de messages : 160
Age : 39
Date d'inscription : 08/01/2008

[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty29/01/09, 08:15 pm

Grimly a écrit:
Bien que ton système soit tout beau comme tu le pense, il a un défaut majeur, tu indiques dans chaque sous-produits la quantité de sous-sous-produits pour un seul sous-produit et non pour ton produit final.

Pour résoudre cela, je te propose d'y aller un peu en récursif :

/**
* @param $ident : indentation de l'affichage de tes produits
* @param $product : produit à décrire
* @param $data : données qui viennent du SQL
* @param $multiplicator : multiplicateur
*/
function showNeeds($ident, $product, $data, $multiplicator) {
//...
}

pas pensé a cette party lol merci a toi...
Revenir en haut Aller en bas
Contenu sponsorisé





[Resolu]Aide Script recipe (Php) Empty
MessageSujet: Re: [Resolu]Aide Script recipe (Php)   [Resolu]Aide Script recipe (Php) Empty

Revenir en haut Aller en bas
 
[Resolu]Aide Script recipe (Php)
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU]Npc script python
» [Resolu] Aide pour requete en tableau
» [resolu]aide pls a recompiler Server sous eclipse

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
L2J-FR :: Général :: Aides et Conseils-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser