У меня проблема с отображением данных из массива, которые я получаю из функции
public function izpis_narocil($user)
{
$sql = "SELECT * FROM nabava WHERE id_uporabnika=?";
if ( !$this->stmt = $this->mysqli->prepare($sql) )
throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);
$this->stmt->bind_param("i", $user);
$this->stmt->execute();
$result = $this->stmt->get_result();
if ( $result->num_rows == 0)
return "";
return $result->fetch_assoc();
}
вот код, из которого вызывается функция:
<?php
session_start();
require_once(dirname(__FILE__)."/simpleusers/su.inc.php");
include($path."/menu.php");
$SimpleUsers = new SimpleUsers();
$userId = $_GET["userId"];
$user = $SimpleUsers->getSingleUser($userId);
if ( !$user )
die("The user could not be found...");
$izpisnarocil = $SimpleUsers -> izpis_narocil($user[userId]);
?>
этот код продолжается с HTML-кодом для отображения содержимого.
Я хотел бы отобразить все строки в основном файле, которые вызывают функцию выше.
Спасибо за помощь ...
Я добавил код, из которого вызывается функция.






Чтобы отобразить результат в таблице, измените свой php-код таким образом.
<?php
public function izpis_narocil($user)
{
$sql = "SELECT * FROM nabava WHERE id_uporabnika=?";
if ( !$this->stmt = $this->mysqli->prepare($sql) )
throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);
$this->stmt->bind_param("i", $user);
$this->stmt->execute();
$result = $this->stmt->get_result();
if ( $result->num_rows == 0)
return "";
$data = array();
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
return $data
}
?>
И файл, который вызывает izpis_narocil (),
<?php
$izpisnarocil = $SimpleUsers -> izpis_narocil($user[userId]);
$data = "<table>";
foreach($izpisnarocil as $key=>$value) {
$data .= "<tr><td>".$value['id_nabava']."</td><td>".$value['datum_vnosa']."</td><td>".$value['vrsta']."</td></tr>";
}
$data .= "</table>";
echo $data;
?>
И добавьте другие поля, которые вы хотите отобразить.
Я попробовал это и получил результат: Предупреждение: недопустимое смещение строки id_nabava в /var/www/html/intra_komunalaBrezice/nabava.php в строке 52
Вы можете разместить здесь свой массив?
разве я не получаю массив из функции выше в моем вопросе, а затем с вызовом этой функции $ izpisnarocil = $ SimpleUsers -> izpis_narocil ($ user [userId]); извините, я новичок в этой функции вызова функции ...
print_r ($ izpisnarocil); и выложите результат.
Массив ([id_nabava] => 78 [datum_vnosa] => 2014-01-17 [vrsta] => 1 [narocilo] => AQUAmax -? ISTILNA NAPRAVA 4 PE - SBR [kolicina] => 1,0 KOS [os] => 0 [analiza] => 0 [analiza_st] => [datum_analize] => 0000-00-00 [povprasevanje] => 0 [datum_povprasevanja] => 0000-00-00 [sm] => [pr_dobavitelj] => ZAGO�EN [id_uporabnika] => 1 [prevzemnik] => [opomba] => Pla? Ilo на 24 оброков !! [datum_rok] => 0000-00-00 [naroceno] => 0 [narocilnica] => [status ] => Z [datum_narocila] => 2014-01-20 [datum_preklica] => 0000-00-00 [opomba_narocilo] => [samonabava] => 0 [datum_dobava] => 2014-01-21 [opomba_dobava] => )
из результата я вижу, что результат возвращает только одну строку из базы данных. Мне нужны все строки. В чем проблема?
Я обновил свой ответ
по-прежнему ошибка недопустимое смещение строки ...
Мне удалось заставить это работать. Я просто изменил цикл: while ($ row = $ result-> fetch_assoc ()) {$ data [] = $ row; }
Упс, я это пропустил. Я обновил свой ответ. Спасибо !
Показать сетку
Код
$sql = "SELECT column1, column2,column3 FROM myTableName";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>column1</th><th>column2</th><th>column3</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row["column1"]. "</td><td>" . $row["column2"]. " " . $row["column3"]. "</td></tr>";
}
echo "</table>";
} else {
echo "0 Results";
}
Результат
+++++++++++++++++++++++++++++++
+ column1 + column2 + column3 +
+++++++++++ +++++++++ +++++++++
+ val1 + val2 + + val3 +
+++++++++++ +++++++++ +++++++++
После получения результата из базы данных, пожалуйста, следуйте
<?php
$izpisnarocil = $SimpleUsers -> izpis_narocil($user[userId]);
echo '<table>';
echo '<thead><tr><th>column1</th><th>column2</th><th>column3</th></tr></thead><tbody>';
foreach($izpisnarocil as $row) {
echo'<tr>';
echo'<td>'. $row['FieldName1']."</td>";
echo'<td>'. $row['FieldName2'].'</td>';
echo'<td>'. $row['FieldName3'].'</td>';
echo'<tr>';
}
echo '</tbody>';
echo '</table>';
?>
Я надеюсь, это поможет вам
Примечание: Замените FieldName своим значением
Откуда вы вызываете эту функцию для отображения строк?