Javascript从数据库中获取值

时间:2013-04-06 22:55:23

标签: php javascript mysql json

我有一个html页面和一个php页面。 html页面有一个表,php有一个mysql表的查询。 我不知道如何在我的html页面中显示查询结果。

html页面包含以下部分代码:

<table class="table-striped" id="tabela_editavel_1">
    <thead>
        <tr>
            <th>Contacto</th>
            <th>Dt Receção</th>
            <th>Dt Validade</th>
            <th>Refª Cliente</th>
            <th>Num Proposta</th>
            <th>Estado</th>
        </tr>
    </thead>
    <tbody id="dados_tabela">

        <tr class="">
            <td id="xz"><input id="contacto"/></td>
            <td id="xz"><input id="dtrececao"/></td>
            <td id="xz"><input id="dtvalidade"/></td>
            <td id="xz"><input id="ref_cli"/></td>
            <td id="xz"><input id="numproposta"/></td>
            <td id="xz"><input id="estado"/></td>
        </tr>

    </tbody>
</table>

<script>
$.getJSON('php/c_listaconsultas.php', function(data) {
  $('#contacto').val(data.nome);
  $('#dtrececao').val(data.datarecepcao);
  $('#dtvalidade').val(data.validadeconsulta);
  $('#ref_cli').val(data.referenciaconsulta);
  $('#numproposta').val(data.propostanumero);
  $('#estado').val(data.estado);            
});
</script>

我的php文件包含代码:

(...)

mysql_select_db($database_connLOOPGEST, $connLOOPGEST);
$query_rs_listaconsultas = sprintf("SELECT clientes_consultas.id_cliente, clientes_consultas.id_consulta, clientes_consultas.datarecepcao, clientes_consultas.referenciaconsulta, clientes_consultas.validadeconsulta, clientes_consultas.tituloconsulta, loop_propostas.propostanumero, clientes_contactos.nome, loop_propostas.id_proposta, status.descricao estado, clientes.nome_curto nome_cliente FROM (clientes_consultas left join clientes_contactos on clientes_consultas.id_contacto = clientes_contactos.id_contacto) left join loop_propostas on clientes_consultas.id_consulta = loop_propostas.id_consultacliente inner join status on status.id_status = clientes_consultas.estado inner join clientes on clientes.id_cliente = clientes_consultas.id_cliente WHERE clientes_consultas.id_cliente=%s ORDER BY clientes_consultas.datarecepcao DESC", GetSQLValueString($numcliente_rs_listaconsultas, "int"));
$rs_listaconsultas = mysql_query($query_rs_listaconsultas, $connLOOPGEST) or die(mysql_error());
$row_rs_listaconsultas = mysql_fetch_assoc($rs_listaconsultas);
$totalRows_rs_listaconsultas = mysql_num_rows($rs_listaconsultas);

echo json_encode($row_rs_listaconsultas);

首先,我的“echo json_encode”并没有给我所有的查询行,但只有一行,如何将所有查询行传递给我的html页面?这里缺少什么? :((( 我需要的第二个帮助是如何在表格中显示这些值?我正在使用正确的函数(。$ getJSON)?

提前致谢。 马里奥

2 个答案:

答案 0 :(得分:1)

您必须使用以下内容迭代mysql_fetch_assoc:

while ($row = mysql_fetch_assoc($result)) {
    $row_rs[] = $row;
}

返回的数据将是一个包含对象的数组。你应该用:

迭代它
$.each(data, function(element) { /* do something */})

答案 1 :(得分:1)

首先,请停止使用mysql扩展程序。它已被弃用,您应该使用mysqli或PDO。你只获得一行的原因是你正在使用的函数,mysql_fetch_assoc只返回一行。您需要mysqli_fetch_allPDO equivalent$.getJSON是一个正确使用的函数,设置像你这样的值应该可行,我会console.log(data)找出出错的地方。