2013-05-10 95 views
0

我有以下代碼。有什麼方法可以結合並簡化它嗎?For和While循環在php mysql中

json.html文件中的輸出應如下所示:["abc","def","ghi"]

<?php 
    // Make a MySQL Connection 
    mysql_connect("localhost", "root", "admin") or die(mysql_error()); 
    mysql_select_db("test1") or die(mysql_error()); 

    // Get all the data from the "example" table 
    $result = mysql_query("SELECT * FROM test_auto_complete") or die(mysql_error()); 

    $menu = array(); 

    while($row = mysql_fetch_assoc($result)) 
    { 
    $menu[] = array("id" => $row['username'],); 
    } 

    foreach($menu as $key=>$value) 
    { 
     $menu[$key] = $value['id']; 
    } 


    $my_json_content = json_encode($menu); 

    $file = 'json.html'; 
    $current = file_get_contents($file); 
    file_put_contents($file, $my_json_content); 

    ?> 

我知道代碼看起來很糟糕,但即便如此,有人可以幫助我嗎?

謝謝
阿里漢

+0

請勿使用mysql_ *將它們更改爲PDO或mysqli原因mysql_ *是depracated。看來你不使用$ current變量,所以你爲什麼得到文件的內容?你想使用foreach,我沒有得到它 – Robert 2013-05-10 10:20:16

回答

1

如果你想要把內容在文件不僅僅是使用file_put_contents

$my_json_content = json_encode($menu); 
$file = 'json.html'; 
file_put_contents($file, $my_json_content); 

,並使用此while循環不foreach

while($row = mysql_fetch_assoc($result)) 
{ 
$menu[] = $row['username']; 
} 
+1

他使用它,但他也沒有理由使用file_get_contents。 – Robert 2013-05-10 10:22:15

+1

@RobertPodwika可能是OP需要休息一下:) :) – 2013-05-10 10:25:21

+0

也許:)你是對的 – Robert 2013-05-10 10:34:20

0

我甚至不會給你mysql_ *的解決方案,因爲他們是depracated看解決方案在PDO

<?php 
$dsn = 'mysql:dbname=test1;host=127.0.0.1'; 
$user = 'root'; 
$password = 'admin'; 

try{ 
    $dbh = new PDO($dsn, $user, $password); 
    $menu = array(); 
    foreach ($conn->query("SELECT * FROM test_auto_complete") as $row) 
      $menu[] = $row['username']; 

    file_put_contents('json.html', json_encode($menu)); 

}catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 

?> 

提示:

  1. Mysql_ *功能depracated,他們不支持很多MySQL的
  2. 的foreach你的情況的特點是毫無意義的。
  3. 你代碼中的File_get_contents()對我來說沒有任何意義,你需要什麼文件內容?
  4. 變量用於將要更改的數據。例如在你的情況下,你使用變量json.html這似乎是不變的,如果是這樣,然後使用常量字符串。
+0

致命錯誤:調用成員函數對C:\ xampp \ htdocs \ test \ jquery- auto-complete \ mycheck.php on line 9 當我使用你的代碼時得到這個錯誤消息:( – hjaffer2001 2013-05-10 11:24:40