#php #html-table #output
#php #html-таблица #вывод
Вопрос:
Я совершенно новичок в PHP и пытаюсь написать простую веб-форму, которая отслеживает некоторый инвентарь и кто его заимствовал. У меня установлена LAMP на Ubuntu 13.10 с PHP 5.5. У меня не было проблем с написанием скрипта, который принимает информацию о клиенте и записывает в базу данных MySQL, но я застрял на получении скрипта, который выводит его. Просматривая некоторые примеры и читая, у меня есть это до сих пор:
<?php
ini_set("display_errors","on");
$dsn='mysql:host=localhost;dbname=inventory_form';
$username="****";
$password="*****";
$database="inventory_form";
try
{
$link=new PDO($dsn, $username,$password);
echo 'Connection is established';
}
catch (PDOException $e)
{
$error_message=$e->getMessage();
echo "<h1>An error occurred: $error_message</h1>";
}
$query="SELECT * from Inventory";
$result=$link->query($query);
/*/
$num=mysql_num_rows($result);
echo "<b><center>Database Output</center></b>";
?>
<table border="2" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">Name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Equipment Borrowed</font></th>
<th><font face="Arial, Helvetica, sans-serif">Service Tag</font></th>
<th><font face="Arial, Helvetica, sans-serif">Date Borrowed</font></th>
</tr>
<?php
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"FName");
$last=mysql_result($result,$i,"LName");
$Eq_Brwd=mysql_result($result,$i,"Eqpmnt_Brwd");
$Svc_tag=mysql_result($result,$i,"Service_Tag");
$Date_Bwd=mysql_result($result,$i,"Date_Taken");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo "$first $last"; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo "$Eq_Brwd"; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo "$Svc_tag"; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo "$Date_Bwd"; ?></font></td>
</tr>
<?php
$i;
}
echo "</table>";
?>
Все, что я получаю, это сообщение об установлении соединения. Одна из проблем, которую я знаю, заключается $num
в том, что переменная не получает возвращаемое значение my_sql_num_rows
.Я знаю, что должен быть более простой способ вывода информации о таблице. Любые предложения или лучший способ для этого приветствуются.
Ответ: Теперь все просто. У меня есть это:
<?php
ini_set("display_errors","on");
$dsn='mysql:host=localhost;dbname=inventory_form';
$username="alank";
$password="alank";
$database="inventory_form";
try
{
$link=new PDO($dsn, $username,$password);
echo 'Connection is established';
}
catch (PDOException $e)
{
$error_message=$e->getMessage();
echo "<h1>An error occurred: $error_message</h1>";
}
$query="SELECT * from Inventory";
$result=$link->query($query);
echo "<b><center>Database Output</center></b>";
?>
<table border="2" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">Name</font></th>
<th><font face="Arial, Helvetica, sans-serif">Equipment Borrowed</font></th>
<th><font face="Arial, Helvetica, sans-serif">Service Tag</font></th>
<th><font face="Arial, Helvetica, sans-serif">Date Borrowed</font></th>
</tr>
<?php
while ($row = $result->fetch()) {
echo '$row';
}
?>
Но все равно ничего хорошего. Вывод:
Установлено соединение
Вывод базы данных
$row $row$row$row $row$row$row
Имя строки Оборудование заимствовано Сервис Тег Дата заимствовано
Любой совет. Извините за так много вопросов. Но это то, как вы учитесь. Ценю ваше терпение.
Комментарии:
1. Вы не ссылались ни на одну из возвращаемых переменных из PDO. Кроме того, вы смешиваете расширения PDO и
mysql_*
(mysql_num_rows
), которые несовместимы.
Ответ №1:
$query="SELECT * from Inventory";
$result=$link->query($query);
while ($row = $result->fetch()) {
var_dump($row);
}
вы увидите, как работает PDO.
Функции PDO и функции mysql_ * принадлежат двум разным расширениями. вы их перепутали.
Комментарии:
1. Извините, но где вы помещаете это в код. Смотрите ответ выше.