Форма: PHP: <?php include ("bd_chat.php"); $sql = "SELECT * FROM chat ORDER BY idchat DESC"; $result8 = mysql_query($sql, $dbchat)or die("Ошибка в запросе: " . mysql_error()); if (!$result8) { echo "ошибка - ".mysql_error()."<br>"; echo $sql; exit(); } if (!empty($myrow8['idchat'])) { $loginchat = $myrow8['loginchat']; include ("bd.php"); $sql1 = "SELECT name, fupload FROM users WHERE login='$loginchat'"; $result9 = mysql_query($sql1, $db)or die("Ошибка в запросе: " . mysql_error()); if (!$result9) { echo "ошибка - ".mysql_error()."<br>"; echo $sql1; exit(); } else{} if ($myrow9['fupload'] =='' or empty($myrow9['fupload'])) { $avachat = "../file/avatars/net-avatara.jpg"; } else { $avachat = $myrow9['fupload']; } $w_chat = 30; $w_src_chat = imagesx($avachat); $h_src_chat = imagesy($avachat); $dest_chat = imagecreatetruecolor($w_chat,$w_chat); if ($w_src_chat>$h_src_chat) { imagecopyresampled($dest_chat, $avachat, 0, 0, round((max($w_src_chat,$h_src_chat)-min($w_src_chat,$h_src_chat))/2), 0, $w_chat, $w_chat, min($w_src_chat,$h_src_chat), min($w_src_chat,$h_src_chat)); if ($w_src_chat<$h_src_chat) { imagecopyresampled($dest_chat, $avachat, 0, 0, 0, 0, $w_chat, $w_chat, min($w_src_chat,$h_src_chat), min($w_src_chat,$h_src_chat)); if ($w_src_chat == $h_src_chat) { imagecopyresampled($dest_chat, $avachat, 0, 0, 0, 0, $w_chat, $w_chat,$w_src_chat, $w_src_chat); } else{} } else{} } else{} } else{} while ($myrow8 = mysql_fetch_array($result8)) { if (!empty($myrow8['idchat'])) { printf("<table class='' border='1'> <tr> <td> <div class='avachat'>%s</div><div class=''>%s</div><div class=''>%s</div> </td> <tr> </table>", $avachat, $myrow9['name'], $myrow8['textchat']); } else { echo("!"); } } ?> Подключение к базе чата: PHP: <?php $dbname="chat"; $dbhost="localhost"; $dbuser="panich07"; $dbpass="070CFItymrf"; $dbchat = mysql_connect ($dbhost,$dbuser,$dbpass); if (!$dbchat) { exit("Извините за временные неудобства!В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.Попробуйте посетить сайт позднее!"); } mysql_select_db ("user",$dbchat); if (!@mysql_select_db ("user",$dbchat)) { echo("Извините за временные неудобства!В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.Попробуйте посетить сайт позднее!"); } ?> К базе пользователей: PHP: <?php $dbname="users"; $dbhost="localhost"; $dbuser="panich07"; $dbpass="070CFItymrf"; $db = mysql_connect ($dbhost,$dbuser,$dbpass); if (!$db) { exit("Извините за временные неудобства!В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.Попробуйте посетить сайт позднее!"); } mysql_select_db ("user",$db); if (!@mysql_select_db ("user",$db)) { exit("Извините за временные неудобства!В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.Попробуйте посетить сайт позднее!"); } ?> База чата: [sql]CREATE TABLE IF NOT EXISTS `chat` ( `idchat` int(255) NOT NULL AUTO_INCREMENT, `loginchat` varchar(30) NOT NULL, `textchat` varchar(70) NOT NULL, `datachat` varchar(20) NOT NULL, PRIMARY KEY (`idchat`), FULLTEXT KEY `namechat` (`loginchat`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;[/sql] С базой юзеров всё в норме,так как на другую страницу всё выводится... Суть проблемы: В таблице выводится только текст сообщения,который был занесён в базу,а имя и афатарка не выводятся из базы юзеров!Переменной аватарки не присваевается даже изображение "нет-аватара", что бы его уменьшить и вывести в таблице!
Для начала посмотри, в базе то эти поля хоть забываются? P.S. И разберись в коде, зачем у тебя везде стоит: "else {}" If и с одним результатом нормально работает)
оО на какой форум не приди, везде знакомые авторы вопросов откуда у вас берётся переменная $myrow8['idchat']? зачем такая проверка? PHP: if ($myrow9['fupload'] =='' or empty($myrow9['fupload'])) empty и так проверяет что строка пустая, оставьте просто PHP: if (empty($myrow9['fupload'])) откуда берётся $myrow9['fupload']? где не выводится аватарка? PHP: while ($myrow8 = mysql_fetch_array($result8)) { if (!empty($myrow8['idchat'])) { printf("<table class='' border='1'> <tr> <td> <div class='avachat'>%s</div><div class=''>%s</div><div class=''>%s</div> </td> <tr> </table>", $avachat, $myrow9['name'], $myrow8['textchat']); } else { echo("!"); } } это вывод разных юзеров с аватаркой? так у вас аватарка один раз присваивается из неизвестного поля $myrow9['fupload'] цикл хоть 100 раз путь бежит, ава будет везде одна. если у вас таблица юзеров отдельно, можно хранить просто id юзера возле каждого сообщения а не ник, и объединять таблицы по user.id и в цикле каждому юзеру будет вам отдельная аватарка и ник.
еб*ть... Easy, блин я отправил сообщение и тут ты выше уже написал раньше) чистить не буду я тоже в восторге))
Поля забиваются и всё внорме!Но не работает даже если в ручную переменные вносить туда! Эту конструкцию мне на одном форуме подсказали-говорят,что скорость чтения кода браузером увеличивается-видать такой же спец как и я!))) Спорить не буду-тут заложал-код переделывал с другой страницы,а убрать не подумал даже! Из базы забираю: PHP: $sql1 = "SELECT name, fupload FROM users WHERE login='$loginchat'"; или не прав я? Ава должна здесь выводится: HTML: <div class='avachat'>%s</div> А на том форуме не очень отзывчивый народец!Тут ребята более благоразумны и добры к неопытным и начинающим!!!Да и ответов на много больше компитентных,если не брать (в этом случае) последний комент: Почему не известние поле?Вот тут уже нужна помощь,что бы разобраться!!! Я решил создать отдельную базу,куда будут заноситься переменные из сессии пользователя,который отправляет сообщение!После определённого времени(например кажбые 20 сек.) из базы в онлайне будут выводиться сообщения поочерёдно! Кстати,подскажите,есть ли смысл делать такой онлайн-чат с рефрешем на каждые минуты три-или может задолбать пользователя?Есть может другие варианты?
ава у вас тут присваивается переменной PHP: if ($myrow9['fupload'] =='' or empty($myrow9['fupload'])) { $avachat = "../file/avatars/net-avatara.jpg"; } else { $avachat = $myrow9['fupload']; } кстати это можно записать одной строкой PHP: $avachat = empty($myrow9['fupload']) ? "../file/avatars/net-avatara.jpg" : $myrow9['fupload']; где то читал что тернарные операторы работают быстрей Так вот, вы 1 раз присваиваете переменной $avachat путь к файлу, а потом в цикле выводите сообщения пользователей PHP: while ($myrow8 = mysql_fetch_array($result8)) но в цукле у вас у всех сообщений получатся одна ава, так как не где в цикле переменная с авой не меняется. не слова не понял сделайте таблицу, вместо ника впишите в таблице чата user_id. а выводите потом так вместо этого PHP: $sql = "SELECT * FROM chat ORDER BY idchat DESC"; как то так PHP: $sql = "SELECT `chat`.*, `users`.`name`, `users`.`fupload` FROM `chat`, `users` WHERE `chat`.`user_id` = `users`.`id` ORDER BY `idchat` DESC"; вот вам вместо 2з запросов будет один, и хранится будет по id юзера, и ава будет в цикле менятся. а по поводу я вижу в коде где вы получаете $result8 и $result9 но откуда берутся $myrow8 и $myrow9 я не вижу я так понимаю должно быть выражение что то ттипа PHP: $myrow8 = mysql_fetch_array($result8); но его нет. я надеюсь это речь не о форуме где мой ник alex....? я на любом форуме отзывчивый, если кода не много и вопрос хоть как то можно понять а если кода много, то просто лень сидеть читать разбираться.
Вот тут большое спасибо-чем кода меньше-там лучше,а то к концу написания сам не разбирёшься!))) Действительно-сейчас перечитал и понял,что здесь тупанул! Эту запись не совсем понял,но теперь знаю куда двигаться...спасибо! Это факт,но как тогда само сообщение чата выводится!?При всём при этом (даже если предположить,что к каждому сообщению прекрепляется одна и та же ава) почему не прикрепляется изображение:"нет-аватара",уж оно должно же выводиться...!!!??? Мало на каких форумах оставлял свои сообщения (прозьбы о помощи) и писал вышеупомянутое сообщение не Вам,а как ответ на отречённое высказывание...))))Да и спорить не хочу-за помощь большое СПАСИБО! П.С.Что сказете про функцию ресайза мою (в самом первом сообщении)?!Есть недоработки?
Я хотел сделать следующим образом: Пользователь зашёл на свою страницу, написал в окне "инпут" сообщение и нажал отправить!Код пхп в это время вынимает из сессий логин пользователя (так как в моём случае он будет индивидуален и повторов быть не может-по мылу сделал). Далее он вынимает из базы юзеров по логину имя и аватарку, из базы чата вытаскивает сообщение и всё это в цикле выводит в браузере! Так же всё правильно получилось!?Должно работать? П.С. гляньте код ресайза в начале самом обсуждения-если,что не так,то подтолкните куда двигаться...заранее благодарен!