2013-05-10 55 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