Обучение/Помощь новичкам | Дублирует сообщение
Создал сообщение 1 и в базе оно 1, а при виводе показивает что их 10. Что не так помогите исправить вот код: уже нет сил...
php
$k_post = $db->query("SELECT * FROM `followers` tb1,`post` tb2 WHERE tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' AND tb1.id_follower = tb2.id_author")->num_rows; $k_page = k_page($k_post,10); $page = page($k_page); $start = 10*$page-10; $c = $db->query("SELECT * FROM `followers` tb1,`post` tb2 WHERE tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' AND tb1.id_follower = tb2.id_author ORDER by tb2.time DESC LIMIT $start, 10"); while($w = $c->fetch_assoc()){ echo'<div style="padding-bottom:15px; padding-top:15px; padding-left:35px;">'.$w['msg'].' </div>'; } if($k_post > '10') { echo str('?',$k_page,$page.''); }
Вот как оно вигледит, а в базе только одно сообщение
------
84189_Screenshot_1.png (117.3 Kb)
Скачиваний: 137
------
Скачиваний: 137
php
<?php #Я бы вот так вот юзала например) $page = new Paginator('/post/', 10); $post = $db -> query('SELECT * FROM `table`'); if ($post) { foreach ($post as $key) { echo'<div>......</div>'; } echo $peger->display; }else { echo'<div> Сообщений нет...</div>'; } php
<?php #Я бы вот так вот юзала например) $page = new Paginator('/post/', 10); $post = $db -> query('SELECT * FROM `table`'); if ($post) { foreach ($post as $key) { echo'<div>......</div>'; } echo $peger->display; }else { echo'<div> Сообщений нет...</div>'; }
заметил оно повторяет только создателя сообщения чтото сдесь не так
sql
tb2.id_author = '". $user['id'] ."' OR Создал сообщение 1 и в базе оно 1, а при виводе показивает что их 10. Что не так помогите исправить вот код:
php
$k_post = $db->query("SELECT * FROM `followers` tb1,`post` tb2 WHERE tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' AND tb1.id_follower = tb2.id_author")->num_rows; $k_page = k_page($k_post,10); $page = page($k_page); $start = 10*$page-10; $c = $db->query("SELECT * FROM `followers` tb1,`post` tb2 WHERE tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' AND tb1.id_follower = tb2.id_author ORDER by tb2.time DESC LIMIT $start, 10"); while($w = $c->fetch_assoc()){ echo'<div style="padding-bottom:15px; padding-top:15px; padding-left:35px;">'.$w['msg'].' </div>'; } if($k_post > '10') { echo str('?',$k_page,$page.''); } php
SELECT * FROM `followers` tb1,`post` tb2 WHERE tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' AND tb1.id_follower = tb2.id_author ORDER by tb2.time DESC LIMIT $start, 10 php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $ank['id'] ."' tb2.id_author = '". $ank['id'] ."' OR tb1.id_user = '". $user['id'] ."'
Вы делаете джоин
На каждую сущность в одной таблице приходится 10 сущностей в другой
Используйте группировку
На каждую сущность в одной таблице приходится 10 сущностей в другой
Используйте группировку
php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $ank['id'] ."' tb2.id_author = '". $ank['id'] ."' OR tb1.id_user = '". $user['id'] ."' sql
]tb2.id_author = '". $user['id'] ."' OR всеравно дублирует. Когда я убераю
sql
]tb2.id_author = '". $user['id'] ."' OR То и надо делать запись таким образом что бы были ID твой и того кому пишут они в любом случае будут разные.
Я всего лишь тебе привел пример. Как у тебя там все реализовано я не знаю.
