21

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

mike написав:

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

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

На наступний раз буду обдумувати

22

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

mike написав:

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

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 - очікує оди параметр

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

Буду перекладати, дякую за критику, буду виправлятися :)

23

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

дякую, знайшов вся проблема в змінній $row_posts

   
 while($row_posts = mysqli_fetch_array($run_posts)){
        $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'];
    }

шо з нею нетак?

Подякували: mike1

24

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

до речі а що за:

$user_id

звідки ця змінна береться? Може в ній проблема?

мені здається, що логіка роботи у вас неправильна
спершу ви завантажуєте АБСОЛЮТНО ВСІ пости в діапазоні по сторінках із незрозумілим сортуванням ORDER BY 1
а потім витягуєте якогось користувача, ОДНОГО, бо я так розумію  поле user_id унікальне поле. значить витягнеться один юзер

Подякували: ostap34PHP1

25

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

posts='yes'

флаги в БД краще зберігати як 0 або 1,  а не словом
маю на увазі, що колонка в таблиці повинна бути типу

TINYINT(1)

тому що зберігати в БД лишній текст немає сенсу, бо зменшується швидкодія СЕЛЕКТУ (при пошуку, сортуванні)

Подякували: ostap34PHP1

26

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

ost.bregin2014 написав:

дякую, знайшов вся проблема в змінній $row_posts

   
 while($row_posts = mysqli_fetch_array($run_posts)){
        $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'];
    }

шо з нею нетак?

ну що з нею не так, та біс його знає

Прихований текст

яке питання, така і відповідь

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

27 Востаннє редагувалося 221VOLT (27.01.2017 23:35:34)

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

ost.bregin2014 написав:

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

суть навіть не в перевірках)

до будь-якої мови програмування можна/варто зібрати набір примітивів-прикладів,
у яких - познайомитись з мовою - конструкціями - можливостями певних функцій etc

+ далі при роботі над складними проектами -- звідси копіюємо -- туди вставляємо
http://risovach.ru/thumb/upload/200s400/2013/07/generator/ne-nado-tak_23622791_orig_.jpeg?21h5m
чому не робити так? зручно же))

от дещо я був поділився з того що маю)

Подякували: ostap34PHP1

28

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

mike написав:

до речі а що за:

$user_id

звідки ця змінна береться? Може в ній проблема?

мені здається, що логіка роботи у вас неправильна
спершу ви завантажуєте АБСОЛЮТНО ВСІ пости в діапазоні по сторінках із незрозумілим сортуванням ORDER BY 1
а потім витягуєте якогось користувача, ОДНОГО, бо я так розумію  поле user_id унікальне поле. значить витягнеться один юзер

до речі а що за:

$user_id

та ні, вона робоча в базі даних є поле

29

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

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

до речі а що за:

$user_id

звідки ця змінна береться? Може в ній проблема?

мені здається, що логіка роботи у вас неправильна
спершу ви завантажуєте АБСОЛЮТНО ВСІ пости в діапазоні по сторінках із незрозумілим сортуванням ORDER BY 1
а потім витягуєте якогось користувача, ОДНОГО, бо я так розумію  поле user_id унікальне поле. значить витягнеться один юзер

до речі а що за:

$user_id

та ні, вона робоча в базі даних є поле

хм, тоді дайте правильну відповідь

$user_id="bla_bla_bla";
$user="select * from `users` where user_id='$user_id' AND posts='yes'"
echo $user; // що тут виведеться?

а що виводиться у вас?

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

30

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

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

до речі а що за:

$user_id

звідки ця змінна береться? Може в ній проблема?

мені здається, що логіка роботи у вас неправильна
спершу ви завантажуєте АБСОЛЮТНО ВСІ пости в діапазоні по сторінках із незрозумілим сортуванням ORDER BY 1
а потім витягуєте якогось користувача, ОДНОГО, бо я так розумію  поле user_id унікальне поле. значить витягнеться один юзер

до речі а що за:

$user_id

та ні, вона робоча в базі даних є поле

хм, тоді дайте правильну відповідь

$user_id="bla_bla_bla";
$user="select * from `users` where user_id='$user_id' AND posts='yes'"
echo $user; // що тут виведеться?

а що виводиться у вас?

таке:

select * from `users` where user_id='bla_bla_bla'

31 Востаннє редагувалося koala (28.01.2017 15:44:02)

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

ost.bregin2014 написав:
$user = "select * from `users` where user_id='$user_id' AND posts='yes'" or die('error mysqli2');

or - логічна операція АБО - в багатьох МП, зокрема в PHP, виконується скорочено: якщо перший аргумент істинний, то сенсу перевіряти (обчислювати) другий немає, бо весь вираз буде істинним. Те саме і для and - якщо перший аргумент хибний, то другий не буде обчислено. Таким чином, запис

$x = $a or die()

буде перевіряти значення $a, і якщо воно істинне (чи може бути перетворене на істинне) поверне його, а якщо воно хибне (чи може бути перетворене на хибне), спробує виконати die() і завершить виконання. Фактично це - скорочений запис від чогось такого:

if( !$a ){
    die();
} else {
    $x = $a;
}

Загалом, форма or die() - це дешевий і сердитий спосіб контролю помилок функцій, що повертають False при помилці, але в серйозному коді його варто уникати. Ну а конкретно в цьому рядку це безглуздо - непустий рядок (гаразд, і не '0') буде давати True і друга половина не спрацює ніколи.
Якщо ви із цим не розібралися - краще пишіть розгорнуто.

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

32

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

Тема оголошується закритою, проблему вирішено:
В комаді echo я додав назви змінних в фігурні дужки, і все запрацювало

Дякую всім!