Мой вопрос касается базы данных Oracle, которую я могу подключить с помощью PHP. С тем же запросом, используя SQL Developer, я получил это:
Но в PHP:
$tsql= "select orden, fase, maquina_id, DescMaterial, dhsalida, scg_MaterialesLotes.lote, scg_MaterialesLotes.lotecli from scg_fases inner join scg_materiales on scg_fases.IdBoletin = scg_Materiales.IdBoletin inner join scg_MaterialesLotes on scg_Materiales.IdMatOf = scg_MaterialesLotes.IdMatOF";
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
?>
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
$orden = $row["orden"];
$fase = $row["fase"];
$puesto = $row["maquina_id"];
$art = $row["CodMaterial"];
$desc = $row["DescMaterial"];
$fecha = $row["dhsalida"];
$lote = $row["scg_MaterialesLotes.lote"];
$loteCli = $row["scg_MaterialesLotes.lotecli"];
echo "<tr>";
echo "<td align=center>" . $orden . "</td>";
echo "<td align=center>" . $fase . "</td>";
echo "<td align=center>" . $puesto . "</td>";
echo "<td align=center>" . $art . "</td>";
echo "<td align=center>" . $desc . "</td>";
echo "<td align=center>" . $fecha . "</td>";
echo "<td align=center>" . $lote . "</td>";
echo "<td align=center>" . $loteCli . "</td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
<?php
}
else
{
echo "Submission unsuccessful.";
die( print_r( sqlsrv_errors(), true));
}
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
Используя браузер, он показывает:
Почему я не могу показать ту же информацию? В чем проблема? Спасибо
1) Добавить CodMaterial
поле к вашему запросу Ты не включаешь поле CodMaterial
в вашем запросе, так что эта строка:
$art = $row["CodMaterial"];
Ничего не делает. Таким образом, вы можете добавить это поле в длинный список полей в вашем запросе, или просто использовать SELECT * FROM...
чтобы получить каждое поле.
2) Не используйте tablename.columnname в строках результатов запроса Когда вы запрашиваете scg_MaterialesLotes.lote
например, результирующий атрибут будет называться lote
так что вместо этого в вашем PHP-коде:
$lote = $row["scg_MaterialesLotes.lote"];
Использовать этот:
$lote = $row["lote"];
Сделать то же самое для scg_MaterialesLotes.lotecli
3) Эхо $fecha
как строка, на данный момент это объект типа Вместо того, чтобы использовать:
echo "<td align=center>" . $fecha . "</td>";
Используйте это вместо:
echo "<td align=center>" . ($fecha ? $fecha->format("Y-m-d H:i:s") : ""). "</td>";
Других решений пока нет …