从MySQL解析多行并插入HTML表

时间:2012-01-01 00:46:41

标签: php javascript mysql html

我目前有一个使用PHP访问的MySQL数据库。您搜索名称并返回该人员的联系信息。但是,有时您搜索已存在的名称并返回2个人的联系信息。

我使用JavaScript将信息插入HTML表格。 PHP将联系人信息作为由空格分隔的长字符串返回。我使用split函数同时使用空格字符作为分隔符。

当搜索结果只返回1个名字时,这一切都很好。当它返回2个名字时,我无法弄清楚这两个联系人的信息是如何分开的。因为PHP将它们作为1个连续字符串返回。

这是我的PHP代码的片段:

$data = mysql_query($sqlString) or die("Issue here:" . mysql_error());

    while($row = mysql_fetch_array($data)){
        print $row['firstName'] . " " . $row['lastName'];
    };

以下是我的JavaScript代码片段:

$.post("searchDB.php", {search:$("#searchValue").val(), 
       searchType:$("#searchType").val()}, 
       function(results) {
          var parsedResults = results.split(" ");
          //code for inserting into HTML.
       });

2 个答案:

答案 0 :(得分:2)

我建议使用分隔符将一个人的全名与下一个人分开:

$data = mysql_query($sqlString) or die("Issue here:" . mysql_error());

    while($row = mysql_fetch_array($data)){
        print $row['firstName'] . " " . $row['lastName'] . "__";
    };

导致以下jQuery(假设您不需要将first-name和last-name分隔为不同的元素):

$.post("searchDB.php", {search:$("#searchValue").val(), 
       searchType:$("#searchType").val()}, 
       function(results) {
          var fullNames = results.split('__');
          var table = $('tableSelector');
          for (var i=0,len=fullNames.length; i<len; i++){
              var newTr = $('<tr />').append('<td>' + fullNames[i] + '</td>');
              $(newTr).appendTo(table);
          }
       });

另一方面,如果您需要在单独的单元格中使用名字和姓氏:

$.post("searchDB.php", {search:$("#searchValue").val(), 
       searchType:$("#searchType").val()}, 
       function(results) {
          var fullNames = results.split('__');
          var table = $('tableSelector');
          for (var i=0,len=fullNames.length; i<len; i++){
              var firstName = fullNames[i].split(' ')[0];
              var lastName = fullNames[i].split(' ')[1];

              var newTr = $('<tr />').append('<td>' + firstName + '</td><td>' + lastName + '</td>');
              $(newTr).appendTo(table);
          }
       });

答案 1 :(得分:0)

<?php
  $result = mysql_query("SELECT * FROM table WHERE name='$name'"); //sample query
  $output = "";
  while ($data = mysql_fetch_array($result){
    foreach($data as $key => &$value){
      $output .= $value." ";
    }
  $output .= "\n" // new MySQL row delimiter
  }
?>

你可以为新的行分隔符选择你想要的任何东西(这里我选择了新行) 然后你输出$output但是你想要:)(打印/回声) //然后你通过javascript以某种方式解析它