Javascript 如何从MySQL表中获取所有结果?

Javascript 如何从MySQL表中获取所有结果?,javascript,php,mysql,angularjs,Javascript,Php,Mysql,Angularjs,我正在尝试从phpadmin mysql表中获取所有结果。问题是,使用下面的php和angular JS代码,每次只获取第一行。假设表中有5个条目。发生的只是第一个在网站上显示了5次。当我执行代码中注释掉的php echo时,它将返回表中的所有结果,但它不适用于angular JS 我还使用JS模糊搜索库,由于空间问题,我在这里没有提供。代码如下: </table> <?php $result = mysql_query("SELECT *

我正在尝试从phpadmin mysql表中获取所有结果。问题是,使用下面的php和angular JS代码,每次只获取第一行。假设表中有5个条目。发生的只是第一个在网站上显示了5次。当我执行代码中注释掉的php echo时,它将返回表中的所有结果,但它不适用于angular JS

我还使用JS模糊搜索库,由于空间问题,我在这里没有提供。代码如下:

</table>        
<?php

          $result = mysql_query("SELECT * FROM user_files ORDER BY id DESC");  
          while($row = mysql_fetch_array($result)){

          $id1 = $row['id'];
          $name = $row['user_file_name'];
          //echo $name.'<br/>';                     

?>

<div class="container" ng-init="books=[{book:'<?php echo $name;?>',author:'<?php echo $id1;?>'}]">
</div>                                


<tr ng-repeat="bookInfo in books | filter:bookText | orderBy:'book'">                                   


<td style="color: black;">{{ bookInfo.book }} - {{ bookInfo.author | lowercase}}</td>

<td style="color: black;" align="center">Size</td>
<td style="color: black;" align="center">Type</td>

<td style="color: black;" align="center" width=90%> 
<input type="button" name="read" value="Read"></td>

<td style="color: black;" align="center" width=90%>
<input type="button" name="write" value="Write"></td>

<td style="color: black;" align="center" width=90%>
<input type="button" name="download" value="Download"></td>

<td style="color: black;" align="center" width=90%>
<input type="button" name="share" value="Share"></td>

</tr>

因为您的while循环只执行了1次,所以您必须更改while循环逻辑。

是,因为您将数组初始化为

ng-init="books=[{book:'<?php echo $name;?>',author:'<?php echo $id1;?>'}]
那么只有一本书可供ng repeat使用

所以你要做的是

<?php

  $result = mysql_query("SELECT * FROM user_files ORDER BY id DESC");  
  $dataArr = array();         // to get the all the detail to a array
  while($row = mysql_fetch_array($result)){
      $id1 = $row['id'];
      $name = $row['user_file_name'];
      array_push($dataArr , array("book"=>$name , "author"=>$id1));
  }
 ?>

... ng-init="books=<?php echo json_encode($dataArr); ?>">

首先,通过从表中获取所有数据并将其转换为json数组来创建一个数组。注:还定义angular js控制器appController

      <?php
        $books = array();
        $result = mysql_query("SELECT * FROM user_files ORDER BY id DESC");  
        $i = 0;
        while($row = mysql_fetch_array($result)){

          $books[$i]['id'] = $row['id'];
          $books[$i]['name'] = $row['user_file_name'];
          $books[$i]['bookText'] = $row['bookText'];
          $books[$i]['author'] = $row['author'];
          $i++;
        }

        $books = json_encode($books);
      ?>
现在将这个json数组分配给angular books数组

      <script>
        function appController($data) {
          $data.books = "<?php echo $books; ?>" ;
        }
      </script>

我试过了,它不起作用。相反,它不显示任何文件:我保持了以下两行代码的完整性{{{bookInfo.book}}-{{bookInfo.author | lowercase}}你在inspect元素上看到了什么?我在表定义上做了一个inspect元素,它显示了sql表中的所有文件,但它们并没有在web上显示出来。这是您在检查元素上的ng init=books=on检查元素后可以看到的检查元素视图?
      <script>
        function appController($data) {
          $data.books = "<?php echo $books; ?>" ;
        }
      </script>