-3

助けてください

いくつかの方法を試しましたが、エラーが発生しました

次のように並べ替えます: rate DESC age ASC Height DESC weight ASC

また、フィールドでソートしたい

例で説明できれば、順序が正確にどのようにどこにあるのかを知るのに最適です

                   <? Php

                   $ O ='';
                   / / Put the appropriate information:
                   $ Data = array ('localhost', 'user', 'password');
                   $ Con = mysql_connect ($ data [0], $ data [1], $ data [2]);

                   if ($ con) {
                   $ O = 'Error: Could not connect to server. '. mysql_error ();
                   echo $ o;
                   exit;
                   }

                   / / Change the name of the database for yours
                   $ Db_name = 'database';

                   if (mysql_select_db ($ db_name, $ con)) {
                   $ O = 'Error: Could not select database "'. $ Db_name. '". '.                        mysql_error ();
                   echo $ o;
                   exit;
                   }

                   $ Table = 'users' / / Change this only if you know what it does.
                   $ Query = "SELECT * FROM $ table";
                   $ Where = "WHERE";
                   $ And = 0;


                   if (isset ($ _GET ['name']) &&! empty ($ _GET ['name'])) {
                   $ Where. = "Name LIKE '% $ _GET [name]%'";
                   $ And = 1;
                   }

                   if (isset ($ _GET ['rate'])) {
                   $ E = explode ('-', $ _GET ['rate']);

                   if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
                   if ($ and === 1)
                   $ Where. = "AND";


                   $ Where. = "Rate BETWEEN $ e [0] AND $ e [1]";
                   $ And = 1;
                   }
                   }

                   if (isset ($ _GET ['age'])) {
                   $ E = explode ('-', $ _GET ['age']);

                   if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
                   if ($ and === 1)
                   $ Where. = "AND";


                   $ Where. = "Age BETWEEN $ e [0] AND $ e [1]";
                   $ And = 1;
                   }
                   }

                   if (isset ($ _GET ['Height'])) {
                   $ E = explode ('-', $ _GET ['Height']);

                   if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
                   if ($ and === 1)
                   $ Where. = "AND";


                   $ Where. = "Height BETWEEN $ e [0] AND $ e [1]";
                   $ And = 1;
                   }
                   }

                   if (isset ($ _GET ['weight'])) {
                   $ E = explode ('-', $ _GET ['weight']);

                   if (is_numeric ($ e [0]) && is_numeric ($ e [1])) {
                   if ($ and === 1)
                   $ Where. = "AND";


                   $ Where. = "Weight BETWEEN $ e [0] AND $ e [1]";
                   $ And = 1;
                   }
                   }

                   if (isset ($ _GET ['City']) &&! empty ($ _GET ['city'])) {
                   if ($ and === 1)
                   $ Where. = "AND";

                   $ Where. = "City = '$ _GET [City]'";
                   $ And = 1;
                   }

                   if (isset ($ _GET ['Eyes']) &&! empty ($ _GET ['Eyes'])) {
                   if ($ and === 1)
                   $ Where. = "AND";

                   $ Where. = "Eyes = '$ _GET [Eyes]'";
                   $ And = 1;
                   }

                   if (isset ($ _GET ['Hair']) &&! empty ($ _GET ['Hair'])) {
                   if ($ and === 1)
                   $ Where. = "AND";

                   $ Where. = "Hair = '$ _GET [Hair]'";
                   $ And = 1;
                   }




                   if (strlen ($ where)> 6)
                   $ Query. = $ Where;

                   $ Result = mysql_query ($ query, $ con);



                   if ($ result) {
                   $ Nrows = mysql_num_rows ($ result);

                   if ($ nrows> 0) {
                   $ O ='';

                   while ($ row = mysql_fetch_assoc ($ result)) {

                   $ O. = "$ Row [image]";
                   }

                   $ O. = "";
                   Else {}
                   $ O = 'There were no results';
                   }
                   Else {}
                   $ O = 'Error: Unable to run the query. '. mysql_error ($ con);
                   }

                   mysql_free_result ($ result);
                   mysql_close ($ con);
                   echo $ o. "";
                   exit;
                   ?>
4

1 に答える 1

0

SQL エラーを修正する前に、PHP エラーを修正してください。例えば; $ Oは正しくありません。 $O、およびである必要があり$_GET[]ます。$oまた、PHP では大文字と小文字が区別されるため、「. 」という意味では使用できません$O

SQL に関しては、Benjamin が指摘したように、SQL キーワードの前後にスペースを入れる必要があり$ Query. = $ Where;ます。$Query. = " ".$Where;

また、ユーザーの権限はアクセスしているデータベースによって異なるため、ユーザーの詳細を入力する前にデータベースを選択する必要があります。(または同時に)。

複雑なクエリについては、MySQL シェルを使用してみてください。クエリを理解したら、PHP 側に引き継ぎます。少なくとも私はそうしています。

頑張れ、ナップ

于 2013-02-27T14:52:06.200 に答える