PHPとMySQLのBagatorіvneveメニュー。 §2。 phpInurlphp独自のメニューIDピラミッドでドロップダウン垂直メニューを作成する方法
Webサイトに単一のWebページがない場合は、ナビゲーションバー(メニュー)を追加することを検討してください。 メニュー-サイトをナビゲートするのに役立つWebサイトに配布されます。 それがメニューであろうと、サイトの内部に保持されるべきメッセージのリストであろうと。 彼自身 簡単な方法でサイトにナビゲーションパネルを追加し、メニューを作成します CSSを助けるおよびHTML。
垂直メニュー
垂直メニューを作成する最初のステップは、箇条書きを作成することです。 リストを識別する機能も必要なので、「navbar」識別子を使用してid属性を追加しました。 革の要素
次のタスクは、ロックの後ろにインストールされているスタイルをリストから削除することです。 リスト自体の名前と内部エントリ、およびリスト内のアイテムの近くのマーカーをクリーンアップする必要があります。 必要な幅を設定しましょう:
#navbar(マージン:0;パディング:0;リストスタイルタイプ:なし;幅:100px;)
今、自分をスタイリングする時が来ました。 それらに背景色を追加し、テキストのパラメータを変更します:フォントの色、サイズ、サイズ、軽く補強し、小さなステップを追加し、フォントのサイズを変更します 行からブロックへの要素。 Dodatkovoは、リスト内のアイテムの左フレームと下フレームに追加されました。
変更の最も重要な部分は、ブロック上の小さな要素の再配布です。 これで、メッセージがリスト内のアイテムの使用可能なスペース全体を占めるようになったため、メッセージに切り替えるために、カーソルをテキストに正確に向ける必要がなくなりました。
#navbar a(background-color:#949494; color:#fff; padding:5px; text-decoration:none; font-weight:bold; border-left:5px solid#33ADFF; display:block;)#navbar li( border-left:10px solid#666; border-bottom:1px solid#666;
すべてのコードと詳細な説明を1つのバットにまとめました。これで、試行ボタンを押すことで、バットの横に移動して結果を確認できます。
メニュー項目の上にマウスカーソルを置いたとき 古い外観あなたはcoristuvachの尊敬を変えて変えることができます。 疑似クラス:ホバーを支援することで、このような効果を作成できます。
前に見た垂直メニューのお尻に目を向けて、次のルールであるスタイルテーブルに追加しましょう。
#navbar a:hover(background-color:#666; border-left:5px solid#3333FF;)試してみてください»
横メニュー
フロントバットでは、メインコンテンツエリアで左利きまたは右利きのサイトを表示する最も一般的な方法である垂直ナビゲーションパネルを確認しました。 ただし、ナビゲーションメッセージを含むメニューは、多くの場合、Webページの上部に水平に表示されます。
優れたリストをさらに定型化するために、水平方向のメニューを作成できます。 要素のパワーディスプレイ
メニュー項目を背面に水平に配置するために、メッセージを含むマーキングリストを作成します。
リストのいくつかのルール、スタイルを破棄するもの、ロックのリストで勝つものを記述し、行のブロックからリストを再検討してみましょう。
#navbar(マージン:0;パディング:0;リストスタイルタイプ:なし;)#navbar li(表示:インライン;)試してください»
今、私たちはより多くを失いました スタイリッシュなデザイン水平メニューの場合:
#navbar(margin:0; padding:0; list-style-type:none; border:2px solid#0066FF; border-radius:20px 5px; width:550px; text-align:center; background-color:#33ADFF; )#navbar a(color:#fff; padding:5px 10px; text-decoration:none; font-weight:bold; display:inline-block; width:100px;)#navbar a:hover(border-radius:20px 5px ; background-color:#0066FF;)試してみてください»
VIPメニュー
作成するメニューは、メインのナビゲーションメッセージの母であり、水平方向のナビゲーションバーで並べ替えられ、サブアイテムは、マウスカーソルをそのメニューアイテムに合わせるとすぐに、特定の数のサブアイテムが表示されるまで表示されます。 。
まず、メニューのHTML構造を作成する必要があります。 主なナビゲーションメッセージは、マークされたリストに追加できます。
okremyリストのサブアイテムmirozmіstimo、要素に養護院を置く
試す
それでは、CSSコードの記述に取り掛かりましょう。 穂軸の場合、追加情報を表示するためのサブアイテムを含むリストを添付する必要があります。 そのため、悪臭は1時間にわたってWebサイトに表示されませんでした。 サブポイントを表示するには、要素にカーソルを合わせる必要があります。
#navbar ul(表示:なし;)#navbar li:hover ul(表示:ブロック;)
リストとロックの後ろに挿入されたマーカーの両方を取り込みます。 航法援助施設を備えたリストの要素は、おそらく浮き、形を整えます 横メニュー、ただし、サブアイテムをチェックする必要があるリストの要素については、float:none;を設定します。 、悪臭が1つ下にあるように見えた。
#navbar、#navbar ul(マージン:0;パディング:0; list-style-type:none;)#navbar li(float:left;)#navbar ul li(float:none;)
次に、抜け落ちないサブメニューがコンテンツに干渉しないように作業し、ナビゲーションパネルの下に押し下げます。 アイテムをリストの位置に配置します。 そしてリストに、サブポイントの位置を復讐するもの:絶対; そして、トップのパワーを100%の値に追加して、サブメニューの位置が力に正確に従うようにします。
#navbar ul(表示:なし;位置:絶対;上:100%;)#navbar li(フロート:左;位置:相対;)#navbar(高さ:30px;)試してください»
Batkivリストの高さは特別に追加されたため、ブラウザーは要素内のフローティングコンテンツをチェックしません。高さを追加しないと、リストはブラウザーによって無視され、リストに続くコンテンツがメニューをラップします。
今、私たちはリストとメニューを侮辱するスタイルを失いました、あなたが見るもの、準備ができています:
#navbar ul(display:none; background-color:#f90; position:absolute; top:100%;)#navbar li:hover ul(display:block;)#navbar、#navbar ul(margin:0; padding: 0; list-style-type:none;)#navbar(height:30px; background-color:#666; padding-left:25px; min-width:470px; height:100%;)#navbar li a(display:ブロック;パディング:6px;幅:100px;色:#fff;テキスト装飾:なし;)#navbar li:hover(背景色:#f90;)#navbar ul li:hover(背景色:#666; )。
phpスクリプトによって処理されるphpのサイトメニューには、独自の特性があります。 それは全体としては可能ですが、それは絶対的またはvodnosn_ silaだけではありませんが、原則として、サイドパネルのサイランのブロックは、サイト。 動的に形成されるメニューは、場所であろうと適切なタイミングで最も重要であろうと、サイトに挿入する方法としてすでに便利です。 したがって、さまざまなセクションやサブフォルダーに移動すると、さまざまなメニューブロックを動的に展開できます。 さらに、悪臭はzmistだけでなく、形状やデザインによっても異なる場合があります。 静的サイトの場合でも、このようなトリックを使用できますが、テンプレートにファイルを追加したり、多くのトリックを実行したりすることもできます。 phpでサイトを作成したいのは何の役にも立ちません。 テンプレートを失います、yakibuv。 Usimkeruvateme1つまたはいくつかの単純なphpスクリプト。
別の見出しに切り替えるには、メニューを動的に形成するためのphpスクリプトを作成するだけで十分です。たとえば、最初の見出しとzmusiti yogoは、スクリプトの前回の作成を通じて見出しのメニューを開きます。 他の見出しも同様の順序で作成できます。 さらに、スクリプト自体のコードにはほとんど実用的な変更はありません。 意味のあるメッセージおよびメッセージ自体と呼ばれるテキストファイルのみを変更します。 このようなスクリプトのコードは、テキストの下にカーソルを合わせます。
//シェーピングメニュー
$ menu = @file($ rubric1_menu);
$ lines = count($ menu);
for($ i = 0; $ i< $lines; $i++)
{
list($ menu_link、$ menu_name、$ menu_title)= explode( "::"、$ menu [$ i]);
if($ page == rub1_part1 and $ i == 0)($ refcolor = "style =" color:#cc0000 "";)
elseif($ page == rub1_part2 and $ i == 1)($ refcolor = "style =" color:#cc0000 "";)
elseif($ page == rub1_part3 and $ i == 2)($ refcolor = "style =" color:#cc0000 "";)
else($ refcolor = "";)
$rubric1。="
}
?>
必要なテキストファイル(この場合はメニューに名前を付ける)でこのようなスクリプトを処理するには、そのタイトル自体を送信します。 このようなファイルを作成するのは不器用です。Dreamweaverのメインメニューコマンド[ファイル]->[新規]を変換し、前述のように新しいhtmlドキュメントを作成し、新しいファイルのコーディングを修正してUTF-8に変更してから、保存するだけで十分です。それは私の父のデータの前にあるrubric1.datです。 このファイルへの次のパスはD:/Mysitephp/data/rubric1.datになります。 ファイルの代わりに、必要に応じて、їхnameとїхtitle(提案)の下にカーソルを合わせます。 さらに、クリム、ショブラン デンマーク語のスクリプトロボットの場合、追加機能のために接続する必要があります 含む()テンプレートエンジンmain.phpで。
Rub1_part1 :: Part 1 :: Part 1 rubric 1 ::
rub1_part2::パート2::パート2ルーブリック1::
rub1_part3::パート3::パート3ルーブリック1::
さらに、サイトのアドレス、サイドのフォルダへのパスとサイトのメタディスクリプション、サイトのメニュー内のファイルへのパス、および追加機能のためにヨガを接続する 含む()テンプレートエンジンmain.phpで。 新しいものを作成する必要がある人のために phpファイル、それを私のために保存します。たとえば、setings.phpをphpフォルダーに保存します。 ファイルへの次のパスはD:/Mysitephp/php/setings.phpで、下にカーソルを合わせます。
#htmlドキュメントのあるフォルダ
$ doctemplates="テンプレート";
#スクリプトディレクトリにリダイレクト
$ turl = "http://mysitephp.ru";
danimesのデータベース
$ rubric1_menu = "data / rubric1.dat";
?>
phpスクリプトを使用してメニューを作成するにはどうすればよいですか? 追加機能の$menuを変更するために戻る ファイル()テキストファイルrubric1.datに移動します。 ポティム機能 カウント()行数を増やす テキストファイルと機能 リスト()і explode()サイクルでは、行を接着する方法(ドット操作)を使用して、メニュー自体が開きます。 . )は歴史的に名前とタイトルで形成されているため、$rubric1の変更に移ることができます。 Daliテンプレートエンジンスクリプト。メニュースクリプトは関数によって有効になります。 含む()、$ rubric1をサイトに変更する代わりに移動して、前述の機能の追加ヘルプを参照してください repl().
当面はそのようなメニューはありませんが、新しいもののシャードは必要な属性だけで送信されますが、スクリプトは送信されません。スクリプトは、これらのメッセージの遷移とサイドの確認を保護します。サイト、およびこれらのメッセージの確認。 扱うCimphpスクリプト。
Daliは、メニューを作成するためのスクリプトを使用した更新のプロジェクトにすることができます。 右側のパネルに無料サブスクリプションの登録とアクティブ化の後に表示されるように、側面でプロジェクトの更新をリクエストすることもできます。 パーティのアドレスを保存する必要があります。 一方、プロジェクトの更新、回路、プログラミング、ウェブサイト開発からのさまざまな青いスクリプト、プログラム、レッスン、ビデオレッスンのプロモーションに応募しました。 初心者向け.
上記の説明の結果として発生した、phpプロジェクトからサイトへの新しいスクリプトによる更新のリクエストを比較できるようになりました。 次に、読み取りをオフにするために、民営化のためにプロジェクトを再度置き換え、操作を開始し、Denwerサーバーを起動し、ブラウザーウィンドウにmysitephp.ruと入力して、何が起こったかを確認します。 テンプレートの左上に、下の小さな画像に示すように、最初のセクションのメニューが開きます。
行って、あなたの好きな社会主義者と仲良くしてください
サイトはナビゲーションなしで完成するべきではありません。そうでなければ、「サイトメニュー」とも呼ばれます。 したがって、サイトのメニューの軸は、同じツリーで1対1および1対1になります。 実装計画には特別な折りたたみオプションの1対1のメニューはありませんが、豊富なメニューを作成する際には慎重に検討する必要があります。
私たちのタスクの最も重要なタスクは、豊富なメニューのデータベースを設計することです。 3つのフィールドからカテゴリのテーブルを作成しましょう id, タイトル, 親 de:
- ID-識別子
- タイトル-メニュー名
- 親-zamovchuvannyamのカテゴリの父 0
メニューのレイアウトについて 親 yakscho 親=0、このカテゴリはBatkivskayaです。 父親のカテゴリに名前を追加するには、親フィールドに指定する必要があります ID必要な父。 例えば:
カテゴリ付きのテーブル
表からわかるように、バトキフのカテゴリーでは 車є2つのnashashki-tse マツダі ホンダフィールド全体のpov'yazanih 親。 そしてカテゴリー オートバイ 2つの餌-tse カワサキі ハーレー。 これにより、Chovnaカテゴリには賞がありません。 カテゴリのランク付け方法を理解していると思います。
練習に移りましょう。 カテゴリテーブルを作成しましょう。
CREATE TABLE IF NOT EXISTS `categories`(` id` int(10)unsigned NOT NULL AUTO_INCREMENT、 `title` varchar(255)NOT NULL、` parent` int(10)unsigned NOT NULL、PRIMARY KEY( `id`)) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 20; ---`categories`テーブルデータをダンプします--INSERTINTO`category`( `id`、` title`、 `parent`)VALUES(1、" Cars "、0)、(2、" Motorcycles "、0) 、(3、マツダ、1)、(4、ホンダ、1)、(5、カワサキ、2)、(6、ハーレー、2)、(7、マツダ3、3)、(8、「マツダ6」、 3)、(9、「セダン」、7)、(10、「ハッチバック」、7)、(11、「チョブニ」、0)、(12、「リフトバック」、8)、(13、「クロスオーバー」、 8)、(14、 "Biliy"、13)、(15、 "Chervoniy"、13)、(16、 "Black"、13)、(17、 "Green"、13)、(18、Mazda CX、3 )、(19、マツダMX、3);ロボットアルゴリズムは、攻撃的なもので構成されています。
データベースとの接続を作成します
query( "SET NAMES" utf8 ""); / * * $connect_errorproteを生成するための「公式の」オブジェクト指向メソッドは*PHPバージョン5.2.9および5.3.0までは機能しません。 * / if($ mysqli-> connect_error)(die( "Connection pardon("。$ mysqli->connect_errno。")"。$mysqli-> connect_error);)/**これは5.2.9より前に接続するために追加する必要があります、*このようなより良いツイストコード* / if(mysqli_connect_error())(die( "Connection pardon("。mysqli_connect_errno()。 ")"。mysqli_connect_error());)テーブルからデータを抽出する関数を記述します。
//配列関数の形式でデータベースからメニューの配列を削除しますgetCat($ mysqli)($ sql = "SELECT * FROM` category` "; $ res = $ mysqli-> query($ sql); / /配列dekey配列を作成しますєメニューID$cat = array(); while($ row = $ res-> fetch_assoc())($ cat [$ row ["id"]] $ $ row;この種の配列を取得し、カテゴリIDを使用して配列のキーを解除します。
一連のビューからツリーをウェイクアップする関数TommyLacroix
// Tommy Lacroixのような配列からツリーを取得する関数functiongetTree($ dataset)($ tree = array(); foreach($ dataset as $ id =>&$ node)(//ネストはありませんif(! $ node ["parent"])($ tree [$ id] =&$ node;)else(//ヘッダーがある場合は、配列$ dataset [$ node ["parent"]]["childs"を反復処理します] [$ id] =&$ node;))return $ tree;)見ているツリーからアレイを削除します
全体としてのスクリプト
query( "SET NAMES" utf8 ""); / * * $connect_errorproteを生成するための「公式の」オブジェクト指向メソッドは*PHPバージョン5.2.9および5.3.0までは機能しません。 * / if($ mysqli-> connect_error)(die( "Connection pardon("。$ mysqli->connect_errno。")"。$mysqli-> connect_error);)/**これは5.2.9より前に接続するために追加する必要があります、*このようなより良いツイストコード* / if(mysqli_connect_error())(die( "Connection pardon("。mysqli_connect_errno()。 ")"。mysqli_connect_error());)function getCat($ mysqli)($ sql = "SELECT * FROM `categories`"; $ res = $ mysqli-> query($ sql);//配列dekey配列を作成єmenuID$ cat = array(); while($ row = $ res-> fetch_assoc()) ($ cat [$ row ["id"]] = $ row;)return $ cat;)// Tommy Lacroix関数のような配列からツリーを取得しますgetTree($ dataset)($ tree = array(); foreach($ dataset as $ id =>&$ node)(//ネスターはありませんif(!$ node ["parent"])($ tree [$ id] =&$ node;)else(//ヘッダーのため、繰り返します配列上$dataset[$ node ["parent"]] ["childs"] [$ id] =&$ node;))return $ tree;)// danimi$catから配列を準備する必要があります = getCat($ mysqli); //ツリーのようなメニューを作成します$Tree= getTree($ Cat); //ツリービュー関数にメニューを表示するためのテンプレートtplMenu($ category)($ menu = "- ".showCat($ category ["children "])。"
- "。$cat_menu。"
ロボットの結果
管理者向けのPHP+MySQLのBagator_vneveメニュー
あなたのサイトの管理でこのメニューを獲得したい場合は、いくつかの機能を書き直す必要があります tplMenu(), showCat().
"。$category["title"]。"";)else($ menu =" ";)if(isset($ category ["childs "]))($ i = 1; for($ j = 0; $ j< $i; $j++){ $str .= "→"; } $i++; $menu .= showCat($category["childs"], $str); } return $menu; } /** * Рекурсивно считываем наш шаблон **/ function showCat($data, $str){ $string = ""; $str = $str; foreach($data as $item){ $string .= tplMenu($item, $str); } return $string; } //Получаем HTML разметку $cat_menu = showCat($tree, ""); //Выводим на экран echo ""; ?>
ロボットの結果
車→マツダ→→マツダ3→→→セダン→→→ハッチバック→→マツダ6→→→リフトバック→→→クロスオーバー→→→→ホワイト→→→→チェルボニー→→→→チョルニー→→→→→ゼレニー→ →マツダCX→→マツダMX→ホンダモーターサイクル→カワサキ→ハーレーチョブニーOskіlkiはmenu.phpモジュールを開きません。 以下に、PHPのメニューの詳細な説明を示します。これは、bulaがメモ帳で最初から作成されたためです。
このコードは、自作エンジンと同様に、動的サイトに特に適しています。 詳細があいまいな場合があるため、コードの2つのバリアントを伝播します(その違いについては後で説明します)。
穂軸については、ある種のメニューについて、サイトの構造を指示します。 サイトの構造はそのような外観のせいです( クラシックな外観):
/index.html / section_1 / /razdel_1/articles_1.html /razdel_1/articles_2.html ... /razdel_2/ /razdel_2/articles_1.html /razdel_2/articles_2.html ... ... ... / razdel_N / articles_2 .html
このサイトは他のディストリビューションやアップデートで見つけることができます:
/section_1/podzaderl_1/ /section_1/podzaderl_1/articles_1.html /section_1/podzaderl_1/articles_2.html ... /section_1/podzaderl_2/articles_1.html /section_1/podzaderl_2/articles_2.html
このような構造は、メニューにも実用的ですが、サイズが小さくなっています。
PHPでメニュー用のokremiumファイルを作成することを提案しています。 たとえば、menu.phpはそのようなファイルの魔法の名前になります。 メニューの実装では、CSSメニューのスタイルも表示されるので、多かれ少なかれ美しくなります。 当然、このスタイルは、異なる方法でサイトからのシャードを認識、設計するためにのみ提供されます。
CSSメニュースタイルコード:
.menu(height:42px; padding:0 0 0 16px; background:url(images / spacer.png)repeat;).menu li(display:block; float:left;).menu li.active(background:#000011 ;).menu a(color:#FFF; display:block; line-height:42px; text-decoration:none; padding:0 14px;);)
それでは、PHPでメニューを実装するための最初のオプションを見てみましょう。これは些細なことです。
PHPのメニューコードの最初のバージョン
\ n "; for($ i = 0; $ i": " ";エコー" "。$array_menu[$i]["name"]。" \ n ";)エコー""; ?>
メニューは2つの部分に分けることができます。 最初のステップは、ディストリビューションの名前がディストリビューションリクエストから入力される$array_menu情報配列を削除することです。 Єバリアント danih mySQLしかし、特にtsommu noのsensu、oskolkivibrkazovsіmは小さいです。
もう1つの部分は、forループを介してメニューを表示することです。 このサイクルでは、サイトの一貫したアドレスと$array_menu配列のアドレスが使用されます。 そうでない場合は、特別なクラスがアクティブになっているメニューの黒いセクションを表示します。
配列への直接入力の順序は、メニューがWebサイトに表示されたときに保存されます。 Tobto配列を整理する必要があり、そのためにメニューを表示する必要があります。
ノート:
URL(アドレス)の見出しは次のようになります。
/ section_1
そうでなければそのような
/section_1/name_razdela.html
次に、array_menuに正確な値を書き込む必要があります。
$ array_menu [$ i] ["url"] = "/ section_1"
または別のvipaduの場合:
$ array_menu [$ i] ["url"] = "/ section_1 / nazvanie_razdela.html";
最初のメニューオプションをどのように作成しますか?
ディストリビューションのアドレスがわかっている場合は、pіdsvіchuєメニューを少なくしてください。 たとえば、ページアドレスが/section_1/articles_1.htmlの場合、メニューは表示されません。
コードの別のバリアントは、最初のバリアントを変更し、メニューをディストリビューションにある記事に切り替える機能を転送することです。
PHPのメニューコードの別のオプション
"; for($ i = 0; $ i": " ";echo""。$array_menu[$ i]["title"]。" ";)else(echo($ URL)==($ array_menu [$ i] ["url "])?"": " ";echo""。$array_menu[$ i]["title"]。" " ; ) ) エコー ""; ?>
この記事では、作成方法を紹介します PHPとMySQLのさまざまなメニュー。 めちゃくちゃ、この作成のオプションは豊富ですが、このトピックに関する食事の数から判断すると、お尻が必要です。 私の記事に最初のヨガを持ち込みます。 知っているあなたにとって、どの記事が賢明であるかをすぐに教えます PHPとvmіє練習 MySQL。 他の誰もがこれを通過するか、いくつかの本を読む必要があります PHPとMySQL.
穂軸の場合、データベースにアドバンスフィールドを含むテーブルを作成します。
- id-一意の識別子。
- タイトル-メニューアンカー。
- リンク-アドレス、ヤクでメニュー項目をリードします。
- parent_id-バトキフID。 batkivskyアイテムがない場合、それはNULLになります(そうでない場合は0を入れることができます)。
テーブルを整理しました。今がその時です。 PHPコード。 Povniy PHPコード下にカーソルを合わせます。
$ mysqli = new mysqli( "localhost"、 "root"、 ""、 "db"); //データベースに接続します
$ result_set = $ mysqli-> query( "SELECT * FROM` menu` "); //メニューからのテーブルからのすべてのレコードのRobimo選択
$ items = array(); //メニュー項目の配列
while(($ row = $ result_set-> fetch_assoc())!= false)$ items [$ row ["id"]] = $ row; //データベースからの選択を配列に入力します
$ children = array(); //父親の子要素の特性の配列
foreach($ items as $ item)(
if($ item ["parent_id"])$ children [$ item ["id"]] = $ item ["parent_id"]; //配列を書き込みます
}
関数printItem($ item、$ items、$ children)(
/*メニュー項目を表示します*/
エコー "
echo""。$item["title"]。"";
$ ul = false; //どの子要素が生成されましたか?
while(true)(
/*すべての子要素を探している無限ループ*/
$ key = array_search($ item ["id"]、$ children); //子要素をシャットダウンします
if(!$ key)(
/*子要素が見つかりません*/
if($ ul)echo "//子要素が生成された場合、リストは閉じられます
壊す; //ループから見た
}
unset($ children [$ key]); //知識要素を見ることができます(ワインが再び表示されない場合)
if(!$ ul)(
エコー "
- //子要素がまだなかったため、内部リストを修復します
$ ul = true; //エンサインを設定します
}
echo printItem($ items [$ key]、$ items、$ children); //すべての子要素を再帰的に表示します
}
エコー "
}
?>
このコードは完全に機能していますが、そのようなものは何も書かないことを理解する責任があります(zokrema、visnovok エコー HTMLタグ)。 Іあなたの仕事は、コード自体ではなく、このコードからアルゴリズムを取得することです。 そして、アルゴリズムがエンジンに接続されます。 私は出力にコードをコメントするために最善を尽くしました PHPとMySQLのカスタムメニュー、エール、めちゃくちゃ、vinは先見の明がなく、vimagaєはすでに下品な穂軸の知識です。 YakshchoVesche厄介な知っている PHPとMySQL、それから私はceiを通過することをお勧めします