2013-02-08 68 views
-2

我有在phpMyAdmin,但沒有作品正在通過PHPPHP和MySQL,查詢工作在一個不是其他

這個運行時是查詢的查詢:

DELETE FROM 'table' WHERE 'id' NOT IN (SELECT DISTINCT id FROM (SELECT * FROM 'table' ORDER BY scoreDESC LIMIT 10) foo) 

基本上,它排序桌子得分下降,然後保持前10名,並刪除其餘的。 我可以運行這個細槽的phpmyadmin,但我的PHP代碼說不

這是PHP腳本:

function add_highscore() 
{ 

    mysql_query("DELETE FROM highscores WHERE id NOT IN (SELECT DISTINCT id FROM (SELECT * FROM highscores ORDER BY score DESC LIMIT 10) foo)") 
    or die('0'); 

    echo "1"; 

    mysql_close($table_id); 
} 

有與連接沒有問題,我已經在這工作的腳本更多的功能。

任何想法? 非常感謝幫助!

乾杯,喬恩

+2

爲什麼當你使用'mysqli'時出現'mysql_close'? – tadman 2013-02-08 20:22:48

+1

也許檢查'mysqli_error'? – keithhatfield 2013-02-08 20:23:38

+0

@tadman也許是一個錯字? – Kermit 2013-02-08 20:23:43

回答

0

添加到您的腳本的頂部:

error_reporting(E_ALL); 

而更換:

die('0'); 

與:

die(mysql_error()); 

這應該有助於表明腳本是什麼樣的'不工作'。

+0

謝謝!哦,上帝,我一直在努力修復這個很長一段時間。有了錯誤報告(不知道我不能優先考慮),它變得非常清楚,我的mysql用戶沒有權限做刪除。 :) 再次感謝! – 2013-02-08 20:54:33

+1

@JonNyström是你問題通過sammitch答案解決?那麼請接受它。 – 2013-02-08 20:57:29

0

可能是功能不會被調用或連接不established.You應該嘗試mysql_error捕捉錯誤或使用try catch來趕上錯誤

+0

Sory,php代碼在我的文章中不正確。它應該說「mysql_query」而不是「mysqli_multi_query」。 mysqli是我努力讓它工作的一個嘗試。 – 2013-02-08 20:32:11

0

試試這個:

<?PHP 
function add_highscore() 
{ 
    $link = mysqli_connect($host, $user, $password, $database); 
    $query = "DELETE FROM highscores WHERE id NOT IN (SELECT DISTINCT (id) FROM (SELECT * FROM highscores ORDER BY score DESC LIMIT 10) foo)"; 
    mysqli_query($link, $query) or die('0'); 

    echo "1"; 

    mysqli_close($table_id); 
} 
?> 

MySQL的版本

<?PHP 
function add_highscore() 
{ 

    $link = mysql_connect($server, $username, $password); 
    mysql_select_db($database_name, $link); 

    $query = "DELETE FROM highscores WHERE id NOT IN (SELECT DISTINCT(id) FROM (SELECT * FROM highscores ORDER BY score DESC LIMIT 10) foo)"; 
    return mysql_query($query) or die('0'); 

    echo "1"; 

    mysql_close($link); 
} 

?> 
+0

不工作,mysqli_query是我的OP中的拼寫錯誤。我使用mysql_query。 – 2013-02-08 20:39:14

+1

停止使用MYSQL它將從版本5.5起折舊。 – 2013-02-08 20:40:59

+0

@JonNyström此查詢與您的PHP代碼中的查詢不同。 DELETE FROM'table'WHERE'id'NOT IN(SELECT DISTINCT ID FROM(SELECT * FROM'table'ORDER BY scoreDESC LIMIT 10)foo)。Furhermore,你使用引號而不是反引號,所以我懷疑這在命令行中不起作用。 – 2013-02-08 20:49:58

相關問題