menu hiérarchique - enfant répétée / noms petit-enfant

  • elrayyes
  • Born
  • Born
  • No Avatar
  • Inscription: Aoû 24, 2010
  • Messages: 2
  • Status: Offline

Message Août 24th, 2010, 6:19 am

Salut à tous. S'il vous plaît comprendre que je suis novice en ce qui concerne programmation PHP / MySQL.
J'ai une question concernant la construction d'un système de menu qui portera les noms de petit-enfant répétées sous des noms différents enfants.
Les données sont importées à partir d'un texte (onglet-delimeted) pour créer la table en utilisant le code suivant - très simple.

PHP Code: [ Select ]
<?php
include "connect.php";
 
if(isset($_POST['submit']))
   {
      mysql_query('TRUNCATE TABLE tester;');
      $filename=$_POST['filename'];
      $handle = fopen("$filename", "r");
      while (($data = fgetcsv($handle, 4096, "\t")) !== FALSE)
      {
         $import="INSERT into tester(ProductID,ShortDescription,Description,FamilyID,Cat1,Cat2,Cat3,Cat4) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]')";
         mysql_query($import) or die(mysql_error());
      }
      fclose($handle);
      print "Import done";
   }
   else
   {
      print "<form action='import.php' method='post'>";
      print "Type file name to import:<br>";
      print "<input type='text' name='filename' size='20'><br>";
      print "<input type='submit' name='submit' value='submit'></form>";
   }
?>
 
  1. <?php
  2. include "connect.php";
  3.  
  4. if(isset($_POST['submit']))
  5.    {
  6.       mysql_query('TRUNCATE TABLE tester;');
  7.       $filename=$_POST['filename'];
  8.       $handle = fopen("$filename", "r");
  9.       while (($data = fgetcsv($handle, 4096, "\t")) !== FALSE)
  10.       {
  11.          $import="INSERT into tester(ProductID,ShortDescription,Description,FamilyID,Cat1,Cat2,Cat3,Cat4) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]')";
  12.          mysql_query($import) or die(mysql_error());
  13.       }
  14.       fclose($handle);
  15.       print "Import done";
  16.    }
  17.    else
  18.    {
  19.       print "<form action='import.php' method='post'>";
  20.       print "Type file name to import:<br>";
  21.       print "<input type='text' name='filename' size='20'><br>";
  22.       print "<input type='submit' name='submit' value='submit'></form>";
  23.    }
  24. ?>
  25.  


Cat1 par cat4 définit les niveaux de la catégorie (nom de la catégorie dans chaque niveau). Voici un exemple de la hiérarchie nécessaire de le menu

* Eclairage
- Encastré
- Fluorescent
--- 3-en
--- 4-en
--- 5-en
Halogénures métalliques -
--- 3-en
--- 4-en
--- 5-en
- Sous armoire
* Lampes
- Fluorescent
- Halogène
etc

Vous remarquez que la nomination petit-enfant (c.-à-3-en, 4-in, etc) est répété sous deux noms différents enfants (Fluorescent à-dire, aux halogénures métalliques). Cela poserait un problème en montrant tous les produits qui tombent dans des niveaux différents petits-enfants doit être indiqué sous le même titre (répétée).
J'espère que vous pourrez voir ma Délima avec cela. Toute aide serait très appréciée.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Août 24th, 2010, 6:19 am

  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Août 25th, 2010, 3:53 am

Quelques notes à ce sujet:

1. Il serait préférable de combiner vos requêtes dans une requête pour prendre un peu de soulager le serveur MySQL et en faire un peu plus vite, par exemple:

A:
SQL Code: [ Select ]
INSERT INTO `table`(id,name) VALUES(NULL,'R_T'),(NULL,'elrayyes'),(NULL,'Something');


sera plus rapide que
B:
SQL Code: [ Select ]
INSERT INTO `table`(id,name) VALUES(NULL,'R_T');
INSERT INTO `table`(id,name) VALUES(NULL,'elrayyes');
INSERT INTO `table`(id,name) VALUES(NULL,'Something');
  1. INSERT INTO `table`(id,name) VALUES(NULL,'R_T');
  2. INSERT INTO `table`(id,name) VALUES(NULL,'elrayyes');
  3. INSERT INTO `table`(id,name) VALUES(NULL,'Something');


Réglage de votre code PHP pour construire un plus grand requête, puis exécutez ce serait mieux.

2. echo () ING est plus rapide que print () ING...Cela pourrait être par miliseceonds, mais si vous avez beaucoup de places sauver millisecondes à un moment il pourrait aider un peu sur les pages de trafic est supérieur.

3. Les guillemets simples autour des chaînes est plus rapide que d'utiliser des guillemets doubles, par exemple:

A:
PHP Code: [ Select ]
echo 'Hello my name is R_T';


sera plus rapide que
B:
PHP Code: [ Select ]
echo "Hello my name is R_T";


Encore une fois, c'est là une différence vraiment minuscule mesurée en millisecondes, mais sur des pages fréquemment consultées il pourrait faire une petite différence. Notez cependant que les variables ne peuvent pas être echo () d dans les chaînes entre guillemets simples, alors ce qui suit ne fonctionnera pas:

PHP Code: [ Select ]
$username = 'R_T';
echo 'Hello my name is $username';
  1. $username = 'R_T';
  2. echo 'Hello my name is $username';

Cette sortie sera: Bonjour mon nom est $ username

Considérant ce qui suit fonctionnera:
PHP Code: [ Select ]
$username = 'R_T';
echo "Hello my name is $username";
  1. $username = 'R_T';
  2. echo "Hello my name is $username";

Cette sortie sera: Bonjour mon nom est R_T

4. Maintenant, concernant votre question réelle, avez-vous un exemple de fichier que vous importez un endroit que je puisse voir à quoi ça ressemble?
Let's leave all our *plum* where it is and go live in the jungle ...

Afficher de l'information

  • Total des messages de ce sujet: 2 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 129 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC