Обучение/Помощь новичкам | Дублирует сообщение
Создал сообщение 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)
Скачиваний: 151
------
Скачиваний: 151
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 Зачем тебе tb1.id_user = '". $user['id'] ."' если tb1.id_follower = tb2.id_author
Скинь архитектуру таблиц.
php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' меня одного смущает что ID получателя и отправителя это сам пользователь??
Думаю лучше сделать так:
php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $ank['id'] ."'
tb2.id_author = '". $ank['id'] ."' OR tb1.id_user = '". $user['id'] ."' $ank['id'] = это выборка из таблицы пользователя с которым диалог.
Вы делаете джоин
На каждую сущность в одной таблице приходится 10 сущностей в другой
Используйте группировку
На каждую сущность в одной таблице приходится 10 сущностей в другой
Используйте группировку
php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $user['id'] ."' меня одного смущает что ID получателя и отправителя это сам пользователь??
Думаю лучше сделать так:
php
tb2.id_author = '". $user['id'] ."' OR tb1.id_user = '". $ank['id'] ."'
tb2.id_author = '". $ank['id'] ."' OR tb1.id_user = '". $user['id'] ."' $ank['id'] = это выборка из таблицы пользователя с которым диалог.
Когда я убераю
sql
]tb2.id_author = '". $user['id'] ."' OR всеравно дублирует.
Когда я убераю
sql
]tb2.id_author = '". $user['id'] ."' OR То и надо делать запись таким образом что бы были ID твой и того кому пишут они в любом случае будут разные.
Я всего лишь тебе привел пример. Как у тебя там все реализовано я не знаю.
