2017-03-01 7 views
0

私がしなければならないことは、2つのmysqlテーブルから列を選択することです。テーブルaliasessは、PHPから動作しません

$SQL="SELECT h.dzien, h.sektor, s.opis, h.start, h.stop, h.p, h.reg_date FROM harmonogram h,sektory s WHERE h.sektor=s.sektor AND h.dzien='".$dzien."' AND h.start='".$start."' ORDER BY h.dzien, h.sektor, h.start, h.stop;"; 
$wynik = mysql_query($SQL) 
or die('Błąd zapytania'); 

しかし、私は直接mysqlデータベースにSQLを実行すると、それが正常に動作します: このクエリは、PHPスクリプト(私はs.opis列を必要とする)から動作しません。

 
mysql> SELECT h.dzien, h.sektor, s.opis, h.start, h.stop, h.p, h.reg_date FROM harmonogram h,sektory s WHERE h.sektor=s.sektor AND h.dzien='Sun' AND h.start='08:00' ORDER BY h.dzien, h.sektor, h.start, h.stop; 
+-------+--------+------+----------+----------+---+---------------------+ 
| dzien | sektor | opis | start | stop  | p | reg_date   | 
+-------+--------+------+----------+----------+---+---------------------+ 
| Sun |  1 | tyl | 08:00:00 | 08:15:00 | 0 | 2017-03-01 20:23:35 | 
+-------+--------+------+----------+----------+---+---------------------+ 
1 row in set (0.00 sec) 

これは正常に動作しますが、それは、私は問題がaliasessとなるかもしれないと思うOPIS列

$SQL="SELECT dzien, sektor, start, stop, p, reg_date FROM harmonogram WHERE dzien='".$dzien."' AND start='".$start."' ORDER BY dzien, sektor, start, stop;"; 
$wynik = mysql_query($SQL) 
or die('Błąd zapytania'); 

を示していないクエリの以前のバージョンです。

お願いします。 MacPrawnが

$wynik = mysql_query($SQL) or die(mysql_error()); 

を示唆して追加すること

+2

あなたは 'mysql_ *'関数の使用をやめる必要があります。彼らは何年も非難されており、現在のPHPリリースには存在しません。要約すると、PDOと呼ばれる[PHP Data Objects](http://php.net/manual/en/book.pdo.php)について、より現代的なアプローチについて勉強してください。 – sidyll

+0

入力データが同じですか?私はあなたのPHPスクリプトのSQL文字列内の補間を参照してください。また、どのようにデータを使用していますか?それが「うまくいかない」とあなたはどのように結論付けましたか?何かエラーがありますか? – sidyll

+0

$ SQLをエコーし​​て、それをmysqlにコピーします。私はdie commandからエラーメッセージを受け取りました。 – bzc0fq

答えて

0

は、エラーメッセージに、より多くの光を入れました。

これはmysqlテーブル特権の問題でした。 今解決されました。

ありがとうございます!

関連する問題