PHP и MySqli - показване на резултати

Здравейте имам следния проблем:
Имам html форма (textarea). Чрез нея вкарвам следната информация в базата данни (таблицата е озаглавена jivotni има 2 колони - id и animals):
Информацията е:
1.Куче
2.Коте
3.Слон
4.Крава
5.Кон
6.Мравка

Информацията ми се записва точно по този начин в базата данни а именно(в поста ми малко се разминават, но приемете, че id и animals са на един ред):

id
animals​
1
1.Куче
2.Коте
3.Слон
4.Крава
5.Кон
6.Мравка

Проблема е, след като визуализирам информацията, като я покажа в таблица ми се получава следното:
1.Куче 2.Коте 3.Слон 4.Крава 5.Кон 6.Мравка

А аз искам да се покаже така:
1.Куче
2.Коте
3.Слон
4.Крава
5.Кон
6.Мравка

Може ли да ми помогнете - да ме посъветвате, какво да направя, та да се визуализират едно под друго животните?
 
От: PHP и MySqli - показване на резултати

Дай и малко код де.
 
От: PHP и MySqli - показване на резултати

ЕТО ГО КОДА МИ!
HTML:
<form method="POST">
  <textarea name="animals" rows="8" cols="50"></textarea><br>
  <input type="submit" name="programa" value="ADD"/>
  <input type="submit" name="show" value="SHOW"/>
</form>

PHP:
if(isset($_POST['programa'])){
   $animal= trim($_POST['animals'];
   $animal= htmlspecialchars($animal);
   $animal= mysqli_real_escape_string($db, $animal);
   $q= mysqli_query($db, 'INSERT INTO jivotni (animals) VALUES ("'.$animal.'")';
}
//function show result
function getAnimals ($db){
    $q1=  mysqli_query($db, 'SELECT * FROM jivotni');
    if(mysqli_error($db)){
        return FALSE;
    }
    $result=[];
    while ($row = mysqli_fetch_assoc($q1)) {
        $result[]=$row;
    }
    return $result;
}
if(isset($_POST['show'])){
   $animalsDB= getAnimals ($db);
    echo '<table>';
    echo '<tr>';
    echo '<td>ANIMALS</td>';
    echo '</tr>';
foreach ($animalsDB as $d) {
    echo '<tr>';
    echo '<td>'.$d['animals'].'</td>';     
    echo '</tr>';   
}
    echo '</table>';
}
 
От: От: PHP и MySqli - показване на резултати

ЕТО ГО КОДА МИ!
HTML:
<form method="POST">
  <textarea name="animals" rows="8" cols="50"></textarea><br>
  <input type="submit" name="programa" value="ADD"/>
  <input type="submit" name="show" value="SHOW"/>
</form>

PHP:
if(isset($_POST['programa'])){
   $animal= trim($_POST['animals'];
   $animal= htmlspecialchars($animal);
   $animal= mysqli_real_escape_string($db, $animal);
   $q= mysqli_query($db, 'INSERT INTO jivotni (animals) VALUES ("'.$animal.'")';
}
//function show result
function getAnimals ($db){
    $q1=  mysqli_query($db, 'SELECT * FROM jivotni');
    if(mysqli_error($db)){
        return FALSE;
    }
    $result=[];
    while ($row = mysqli_fetch_assoc($q1)) {
        $result[]=$row;
    }
    return $result;
}
if(isset($_POST['show'])){
   $animalsDB= getAnimals ($db);
    echo '<table>';
    echo '<tr>';
    echo '<td>ANIMALS</td>';
    echo '</tr>';
foreach ($animalsDB as $d) {
    echo '<tr>';
    echo '<td>'.$d['animals'].'</td>';     
    echo '</tr>';   
}
    echo '</table>';
}


Според мен имаш някъде незатворен таг или нещо такова. Аз лично от това, което видях, не мога да кажа, че има грешка. Макар, че таблица не се дефинира точно така. Например заглавните са ти <th></th>. Не, че няма да сработи, просто не е добра практика. ВИждам, че сега започваш, така че има време.
 
От: PHP и MySqli - показване на резултати

Резултата дори и да не го покажа в таблица пак е същия - например:
HTML:
<form method="POST">
  <textarea name="animals" rows="8" cols="50"></textarea><br>
  <input type="submit" name="programa" value="ADD"/>
  <input type="submit" name="show" value="SHOW"/>
</form>

PHP:
if(isset($_POST['programa'])){
   $animal= trim($_POST['animals'];
   $animal= htmlspecialchars($animal);
   $animal= mysqli_real_escape_string($db, $animal);
   $q= mysqli_query($db, 'INSERT INTO jivotni (animals) VALUES ("'.$animal.'")';
}
//function show result
function getAnimals ($db){
    $q1=  mysqli_query($db, 'SELECT * FROM jivotni');
    if(mysqli_error($db)){
        return FALSE;
    }
    $result=[];
    while ($row = mysqli_fetch_assoc($q1)) {
        $result[]=$row;
    }
    return $result;
}
if(isset($_POST['show'])){
   $animalsDB= getAnimals ($db);
foreach ($animalsDB as $d) {
    echo 'ANIMALS';
    echo '<br>';
    echo $d['animals'];  
}
}

Резултата е:
ANIMALS
1.Куче 2.Коте 3.Слон 4.Крава 5.Кон 6.Мравка


В базата данни е записан така:
1.Куче
2.Коте
3.Слон
4.Крава
5.Кон
6.Мравка

а аз го визуализирам:
1.Куче 2.Коте 3.Слон 4.Крава 5.Кон 6.Мравка
 
От: От: PHP и MySqli - показване на резултати

Сигурен ли си, че това са отделни редове в БД? :D

PHP:
.........
if(isset($_POST['show'])){
   $animalsDB= getAnimals ($db);

print_r($animalsDB);
}
 
От: От: PHP и MySqli - показване на резултати

Сигурен ли си, че това са отделни редове в БД? :D

PHP:
.........
if(isset($_POST['show'])){
   $animalsDB= getAnimals ($db);

print_r($animalsDB);
}

Визуално ги виждам да са подредени едно под друго, а то било...!?
А някаква идея как да ги визуализирам животните едно под друго?
 
От: От: PHP и MySqli - показване на резултати

Визуално ги виждам да са подредени едно под друго, а то било...!?
А някаква идея как да ги визуализирам животните едно под друго?

Като за начало всяко животно го вкарвай като отделен запис.
 
От: PHP и MySqli - показване на резултати

nl2br($d['animals'])

Явно всички записи са ти в един ред в таблицата, а не всеки в нов.
Ясно е, че в $animalsDB имаш един ред,
 
От: PHP и MySqli - показване на резултати

Ако правилно съм разбрал:

$animal= trim($_POST['animals'];
$animal= htmlspecialchars($animal);
$animalsArr = explode("\n", $animal);
array_filter($animalsArr, 'trim');
foreach ($animalsArr as $singleAnimal) {
mysqli_query($db, 'INSERT INTO jivotni (animals) VALUES ("'.$singleAnimal.'")';
}

===========================

while ($row = mysqli_fetch_assoc($q1)) {
echo $row[0] . '. ' . $row[1] . "\r\n";
}
 
От: PHP и MySqli - показване на резултати

Благодаря Ви много!
Примерите на "stuklen" и "nab4o" ми помогнаха! И двата варианта пробвах и ми вършат работа (работят)! Живи и здрави да сте всички!
 

Горе