1

Тема: Проблема витягування даних з бази, ПЛІЗЗЗ!

Привіт всім [:} , знову Я($user_name), знов проблема, знову треба Шерлоків }{0лмsів,
Я робив функцію:

//Функція для відображення постів
function getPost(){
    global $con;

    $per_page = 5;
    if(isset($_GET['page'])){
        $page = $_GET['page'];
    }
    else{
        $page = 1;
    }

    $start_form = ($page-1) * $per_page;
    $get_posts = "select * from `posts` ORDER by 1 DESC LIMIT $start_from, $per_page" or die('error mysqli1');

    $run_posts = mysqli_query($con,$get_posts);

    while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){
        $post_id = $row_posts['post_id'];
        $user_id = $row_posts['user_id'];
        $post_title = $row_posts['post_title'];
        $content = $row_posts['post_content'];
        $post_date = $row_posts['post_content'];
    }
    //отримання користувача, який розмістив пост
    $user = "select * from `users` where user_id='$user_id' AND posts='yes'" or die('error mysqli2');

    $run_user = mysqli_query($user);
    $row_user = mysqli_fetch_array($run_user) or die('не вдалося взяти інформацію користувача');
    $user_name = $row_user['user_name'];
    $user_image = $row_user['user_image'];
}

//Відображення посту
echo"
<div id='posts'>
<p><img src='user/user_images/$user_image' width='50' height='50'></p>
<h3><a href='single.php?post_id=$post_id'>$user_name</a></h3>
<p>$post_date</p>
<p>$content</p>
<a href='single.php?post_id='$post_id' style='float:right;'>
<button>Див відповіді або відповісти на цей коментар</button>
</a>
</div>";
?>

Суть помилки така: дані не витягуються з бази-даних, і через це сервер пише:
Notice: Undefined variable: user_image in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: user_name in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 77

Notice: Undefined variable: post_date in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 78

Notice: Undefined variable: content in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 79

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 82
І шо з цим робити?!? як вирішити?? в чому ж помилка???? %) буду вдячний...

2

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

Будь-ласка, хоч хтось

3

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

ost.bregin2014 написав:

Привіт всім [:} , знову Я($user_name), знов проблема, знову треба Шерлоків }{0лмsів,
Я робив функцію:

//Функція для відображення постів
function getPost(){
    global $con;

    $per_page = 5;
    if(isset($_GET['page'])){
        $page = $_GET['page'];
    }
    else{
        $page = 1;
    }

    $start_form = ($page-1) * $per_page;
    $get_posts = "select * from `posts` ORDER by 1 DESC LIMIT $start_from, $per_page" or die('error mysqli1');

    $run_posts = mysqli_query($con,$get_posts);

    while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){
        $post_id = $row_posts['post_id'];
        $user_id = $row_posts['user_id'];
        $post_title = $row_posts['post_title'];
        $content = $row_posts['post_content'];
        $post_date = $row_posts['post_content'];
    }
    //отримання користувача, який розмістив пост
    $user = "select * from `users` where user_id='$user_id' AND posts='yes'" or die('error mysqli2');

    $run_user = mysqli_query($user);
    $row_user = mysqli_fetch_array($run_user) or die('не вдалося взяти інформацію користувача');
    $user_name = $row_user['user_name'];
    $user_image = $row_user['user_image'];
}

//Відображення посту
echo"
<div id='posts'>
<p><img src='user/user_images/$user_image' width='50' height='50'></p>
<h3><a href='single.php?post_id=$post_id'>$user_name</a></h3>
<p>$post_date</p>
<p>$content</p>
<a href='single.php?post_id='$post_id' style='float:right;'>
<button>Див відповіді або відповісти на цей коментар</button>
</a>
</div>";
?>

Суть помилки така: дані не витягуються з бази-даних, і через це сервер пише:
Notice: Undefined variable: user_image in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: user_name in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 77

Notice: Undefined variable: post_date in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 78

Notice: Undefined variable: content in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 79

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 82
І шо з цим робити?!? як вирішити?? в чому ж помилка???? %) буду вдячний...

гляньте на цей кусок

 $run_posts = mysqli_query($con,$get_posts);

мені здається що

mysqli_fetch_array

повертає масив із рядками, а не готовий рядок із даними, отже

 $user_name = $row_user[0]['user_name'];

краще, ви це все продебагайте, ось як

while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){

        var_dump($row_posts);
}

і побачите що воно витягує

Подякували: 221VOLT1

4

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

mike написав:
ost.bregin2014 написав:

Привіт всім [:} , знову Я($user_name), знов проблема, знову треба Шерлоків }{0лмsів,
Я робив функцію:

//Функція для відображення постів
function getPost(){
    global $con;

    $per_page = 5;
    if(isset($_GET['page'])){
        $page = $_GET['page'];
    }
    else{
        $page = 1;
    }

    $start_form = ($page-1) * $per_page;
    $get_posts = "select * from `posts` ORDER by 1 DESC LIMIT $start_from, $per_page" or die('error mysqli1');

    $run_posts = mysqli_query($con,$get_posts);

    while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){
        $post_id = $row_posts['post_id'];
        $user_id = $row_posts['user_id'];
        $post_title = $row_posts['post_title'];
        $content = $row_posts['post_content'];
        $post_date = $row_posts['post_content'];
    }
    //отримання користувача, який розмістив пост
    $user = "select * from `users` where user_id='$user_id' AND posts='yes'" or die('error mysqli2');

    $run_user = mysqli_query($user);
    $row_user = mysqli_fetch_array($run_user) or die('не вдалося взяти інформацію користувача');
    $user_name = $row_user['user_name'];
    $user_image = $row_user['user_image'];
}

//Відображення посту
echo"
<div id='posts'>
<p><img src='user/user_images/$user_image' width='50' height='50'></p>
<h3><a href='single.php?post_id=$post_id'>$user_name</a></h3>
<p>$post_date</p>
<p>$content</p>
<a href='single.php?post_id='$post_id' style='float:right;'>
<button>Див відповіді або відповісти на цей коментар</button>
</a>
</div>";
?>

Суть помилки така: дані не витягуються з бази-даних, і через це сервер пише:
Notice: Undefined variable: user_image in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 76

Notice: Undefined variable: user_name in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 77

Notice: Undefined variable: post_date in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 78

Notice: Undefined variable: content in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 79

Notice: Undefined variable: post_id in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 82
І шо з цим робити?!? як вирішити?? в чому ж помилка???? %) буду вдячний...

гляньте на цей кусок

 $run_posts = mysqli_query($con,$get_posts);

мені здається що

mysqli_fetch_array

повертає масив із рядками, а не готовий рядок із даними, отже

 $user_name = $row_user[0]['user_name'];

Дякую, але те саме *FACEPALM*  *SORRY*

Подякували: 221VOLT1

5

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

я оновив свій попередній пост

6

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

mike написав:

я оновив свій попередній пост

Не зрозумів....

7

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

краще продебагайте ось так, і побачите що насправді витягується із БД

while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){

        var_dump($row_posts);
}

8

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

mike написав:

краще продебагайте ось так, і побачите що насправді витягується із БД

while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){

        var_dump($row_posts);
}

Зовсім зовсім нічого не витягнено, var_damp дав "пусто" *PARDON*

9

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

А ні! пише таке:
string(32) "select * from `posts` ORDER by 1" object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(6) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 57
whele no-no(помилка в $row_posts = mysqli_fetch_array($con,$run_posts))

10

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

То шо, є пропозиції? *DRINK*

11

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

ost.bregin2014 написав:

То шо, є пропозиції? *DRINK*

Будь-ласочка, пліз-пліз-з-з-з-зззз *SCRATCH*  *SCRATCH*  *FACEPALM*  *FACEPALM*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*  *WALL*

12

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

ost.bregin2014 написав:
mike написав:

краще продебагайте ось так, і побачите що насправді витягується із БД

while($row_posts = mysqli_fetch_array($run_posts) or die('whele no-no!')){

        var_dump($row_posts);
}

Зовсім зовсім нічого не витягнено, var_damp дав "пусто" *PARDON*

Тепер пише таке
array(12) { [0]=> string(1) "1" ["post_id"]=> string(1) "1" [1]=> string(1) "0" ["user_id"]=> string(1) "0" [2]=> string(1) "1" ["topic_id"]=> string(1) "1" [3]=> string(22) "Привіт всім!" ["post_title"]=> string(22) "Привіт всім!" [4]=> string(44) "Привіт всім!Привіт всім!" ["post_content"]=> string(44) "Привіт всім!Привіт всім!" [5]=> string(10) "2017-01-26" ["post_date"]=> string(10) "2017-01-26" }
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 66

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 67
не вдалося взяти інформацію користувача($row_user = mysqli_fetch_array($con,$run_user) or die('не вдалося взяти інформацію користувача');)

13

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

по перше, почитайте документацію
по друге, почитайте помилки, І ПЕРЕКЛАДІТЬ, які вам віддає інтерпритатор, вони все чудово розказуються вам, що не так

mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\OnlineTernopil\functions\functions.php on line 66 - очікується 2 параметри, а передано тільки один параметр
вирішення

mysqli_query($con,$user);

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in - очікує оди параметр

ця помилка випливає із попередньої, тому що попередня неспрацювала

Подякували: 221VOLT, ostap34PHP2

14

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

while($row_posts = mysqli_fetch_array($run_posts))
гм? ви знаєте як while працює? у вас уява для наз змінних закінчилась?

Подякували: mike, ostap34PHP2

15

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

та й по третє, куди така спішка
в програмування головне не спішити, а то як то кажуть "поспішиш людей насмішиш".
Так і з вами, накопіпастили код, не глянули чи все добре, і потім із-за якогось "глюку" одразу на форум. Ситуація ж примітивна до чортиків.

І це вже не перший раз.

Подякували: 221VOLT, ostap34PHP, flatliner3

16

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

по четверте, пишіть код правильно
у вас немає жодної перевірки, того що повернули ф-ї

ви дійсно впевнені, що $run_posts того типу, що очікіє ф-ія mysqli_fetch_array ??
тут перед цим вартує поставити if, який убезпечить вас від лишніх падінь

mysqli_fetch_array($run_posts)

тут таке саме

$row_user = mysqli_fetch_array($run_user)

ці всі die('...') це добре, але в кінцевому результаті вони не інформативні, краще всього гарно вивести помилку, що пости відсутні, замість куска тексту зліва вверху екрану

Подякували: 221VOLT, ostap34PHP2

17 Востаннє редагувалося 221VOLT (27.01.2017 20:37:52)

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

$user_name , розглянемо ваші помилки --
0) ви надали 45 строк коду, проте помилки говорять про як мінімум 76-82 строки
1) ви не користуєтесь гугл-перекладачем/оффлайновим словником

Undefined variable -- неоприділена, незадана змінна
mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in -- функція очікує першим вхідним параметром структуру результату mysqli, натомість отримує обєкт
mysqli_query() expects at least 2 parameters, 1 given in -- функція має арність два(тобто очікує на 2 вхідних параметри), а отримує лише один

2) ви зовсім не користуєтесь гугл-пошуком
порада -- почитайте про те, які саме секрети є при пошуку в гугл-пошуку

не забувайте -- перед цим як ви зтикнулись з якоюсь помилкою -- сотні чи тисячі тисяч людей перед вами стикались з цією помилкою до вас, і цілком логічно припустити, що інформація для вирішення цієї помилки давним-давно є в гуглі))

3) робіть висновки з ваших попередніх помилок -- навчайтесь на своїх та чужиш помилках

ще раз уважно перечитайте моє повідомлення у вашій темі http://replace.org.ua/topic/7635/
особливо зверніть увагу на приклади під спойлером, домовились?

і ... називайте проблеми - задачами)) чи хоча б помилками))
тоді вони швидше вирішуються (це велика тайна -- лише між нами) :)

p.s. приємно бачити що ви не боїтесь запитувати про свої помилки у людей) тепер потрібно навчитись запитувати про них у гугла, а також трошки стримувати емоції -- і у вас все буде супер-круто получатись :)
успіхів!!

Подякували: mike, ostap34PHP, flatliner3

18

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

...я виявляється багато чого пропустив, ви та пан koala в цій темі, все розклали по полицях

Подякували: 221VOLT1

19

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

221VOLT написав:

$user_name , розглянемо ваші помилки --
0) ви надали 45 строк коду, проте помилки говорять про як мінімум 76-82 строки
1) ви не користуєтесь гугл-перекладачем/оффлайновим словником

Undefined variable -- неоприділена, незадана змінна
mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in -- функція очікує першим вхідним параметром структуру результату mysqli, натомість отримує обєкт
mysqli_query() expects at least 2 parameters, 1 given in -- функція має арність два(тобто очікує на 2 вхідних параметри), а отримує лише один

2) ви зовсім не користуєтесь гугл-пошуком
порада -- почитайте про те, які саме секрети є при пошуку в гугл-пошуку

не забувайте -- перед цим як ви зтикнулись з якоюсь помилкою -- сотні чи тисячі тисяч людей перед вами стикались з цією помилкою до вас, і цілком логічно припустити, що інформація для вирішення цієї помилки давним-давно є в гуглі))

3) робіть висновки з ваших попередніх помилок -- навчайтесь на своїх та чужиш помилках

ще раз уважно перечитайте моє повідомлення у вашій темі http://replace.org.ua/topic/7635/
особливо зверніть увагу на приклади під спойлером, домовились?

і ... називайте проблеми - задачами)) чи хоча б помилками))
тоді вони швидше вирішуються (це велика тайна -- лише між нами) :)

p.s. приємно бачити що ви не боїтесь запитувати про свої помилки у людей) тепер потрібно навчитись запитувати про них у гугла, а також трошки стримувати емоції -- і у вас все буде супер-круто получатись :)
успіхів!!

0) ви надали 45 строк коду, проте помилки говорять про як мінімум 76-82 строки - це тому що ця функція в файлі де є ще кілька фунцій
Дякую, буду виправлятися :) і дякую за виправлення всіх помилок
Виправив, але тепер НЕпрацює тільки:

    $row_user = mysqli_fetch_array($run_user) or die('не вдалося взяти інформацію користувача');

20

Re: Проблема витягування даних з бази, ПЛІЗЗЗ!

mike написав:

по четверте, пишіть код правильно
у вас немає жодної перевірки, того що повернули ф-ї

ви дійсно впевнені, що $run_posts того типу, що очікіє ф-ія mysqli_fetch_array ??
тут перед цим вартує поставити if, який убезпечить вас від лишніх падінь

mysqli_fetch_array($run_posts)

тут таке саме

$row_user = mysqli_fetch_array($run_user)

ці всі die('...') це добре, але в кінцевому результаті вони не інформативні, краще всього гарно вивести помилку, що пости відсутні, замість куска тексту зліва вверху екрану

Тепер буду писати більше перевірок :)