Есть две таблицы characters и items в этих таблицах очень много строк, мне очень нужно сделать выборку из обоих таблиц так чтоб Это все дело выглядело примерно так из таблицы characters (admin- root -(12.апреля.2017)- онлайн -титул) из таблицы items (455-5) Значения obj_id и значение owner_id совпадают для каждого пользователя.
Code: SELECT t1.account_name,t1.char_name,t1.createtime,t1.online,t1.title,items.item_type FROM characters as t1,items WHERE characters.obj_id = items.owner_id Если я правильно понял.
И вот еще вопросик, в этом столбце дата хранится в юникс тайм как ее переконвертировать в человека читаемую ?
я понимаю что олень в программировании ну очень хочу понять как это реализовывается, накатал вот такой код Code: <?php $host = ''; // адрес сервера $database = ''; // имя базы данных $user = ''; // имя пользователя $password = ''; // пароль // подключаемся к серверу $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка " . mysqli_error($link)); $info = mysql_query ('SELECT t1.account_name,t1.char_name,t1.createtime,t1.online,t1.title,items.item_type FROM characters as t1,items WHERE characters.obj_id = items.owner_id'); $myrow = mysql_fetch_array ($info); echo $myrow ["account_name"]; // закрываем подключение mysqli_close($link); ?> только вот нихрена не показывает чистая страничка (
Возможно из-за того, что смешаны функции из набора MySQli c функциями из устаревшего набора MySQL, то есть без буквы "i". В любом случае выбери какой-то один набор, лучше конечно с "i".
Сделал как ты сказал без "i" попробовал тоже ничего не выводится Code: <?php $host = ''; // адрес сервера $database = ''; // имя базы данных $user = ''; // имя пользователя $password = ''; // пароль // подключаемся к серверу $link = mysql_connect($host, $user, $password, $database) or die("Ошибка " . mysql_error($link)); $info = mysql_query ('SELECT t1.account_name,t1.char_name,t1.createtime,t1.online,t1.title,items.item_type FROM characters as t1,items WHERE characters.obj_id = items.owner_id'); $myrow = mysql_fetch_array ($info); echo $myrow ["t1.account_name"]; // закрываем подключение mysql_close($link); ?>
Сделал вот так Code: <?php $ipuser = $_SERVER["REMOTE_ADDR"]; $host = ''; $passwd = ''; $login = ''; $dbname = ''; $dbc = @mysql_connect($host,$login,$passwd); if (!$dbc) { echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } if (!@mysql_select_db($dbname, $dbc)) { echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } $tableIP = mysql_query("SELECT t1.account_name, t1.char_name, t1.createtime, t1.online, t1.title, items.item_type FROM characters as t1, items WHERE characters.obj_id = items.owner_id"); if($tableIP) { // Определяем таблицу и заголовок echo "<table border=1>"; echo "<tr><td>вывод1</td><td>вывод2</td></tr>"; // Так как запрос возвращает несколько строк, применяем цикл while($accounts = mysql_fetch_array($tableIP)) { echo "<tr> <td>".$accounts['t1.account_name']." </td> <td>".$accounts['t1.char_name']." </td> </tr>"; } echo "</table>"; } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } выдает ошибку Error: Unknown column 'characters.obj_id' in 'where clause'
Функция mysql_connect(), не принимает имя базы данных четвертым параметром. Такой синтаксис как у тебя, именно для варианта mysqli_connect. Поэтому чтобы не менять скрипт, ты наоборот к другим функциям добавь "i".
пока я пост писал, я смотрю ты уже скрипт переделал)). поэтому оставь уже этот вариант с набором без i. там судя по ошибке проблема теперь именно с самим запросом
короче в последнем варианте скрипта, который выдал ошибку SQL попробуй characters.obj_id заменить t1.obj_id
Code: $ipuser = $_SERVER["REMOTE_ADDR"]; $host = '3.'; $passwd = ''; $login = ''; $dbname = ''; $dbc = @mysql_connect($host, $login, $passwd); if (!$dbc) { echo( "<P>В настоящий момент СЕРВЕР БЫЗЫ данных не доступен, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } if (!@mysql_select_db($dbname, $dbc)) { echo( "<P>В настоящий момент БАЗА ДАННЫХ не доступна, поэтому корректное отображение страницы невозможно.</P>" ); exit(); } $tableIP = mysql_query("SELECT t1.account_name, t1.char_name, t1.createtime, t1.online, t1.title, items.item_type, items.amount FROM characters as t1, items WHERE t1.obj_id = items.owner_id AND t1.online = 1"); if($tableIP) { // Определяем таблицу и заголовок echo "<table border=3>"; echo "<tr><td>____Account____</td><td>___Имя чара___</td><td>___Дата создания___</td><td>___Online?___</td><td>___Титул___</td><td>___Предмет___</td><td>___Количество___</td></tr>"; // Так как запрос возвращает несколько строк, применяем цикл while($accounts = mysql_fetch_array($tableIP)) { echo "<tr> <td><center>".$accounts['account_name']." </center></td> <td><center>".$accounts['char_name']." </center></td> <td><center>".$accounts['createtime']." </center></td> <td><center>".$accounts['online']." </center></td> <td><center>".$accounts['title']." </center></td> <td><center>".$accounts['item_type']." </center></td> <td><center>".$accounts['amount']." </center></td> </tr>"; } echo "</table>"; } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> </html>
Спасибо тебе все работает! Как сделать чтобы столбцы " 'account_name' 'char_name' 'createtime' 'online' 'title' " выводились только один раз а вот "'item_type' 'amount'" выводились до конца пока работает условие !?