|
|
|
| Скрипт простой (Для вас). Просто есть таблица где отображаються ники, есть форма для дополнения таблицы.. вот и все пока :)
Делал на примере вашей гостевой книги, хех...
Вот написал скрипт для отображения ников, но сразу ошибка, и не знаю почему.
<html>
<head>
<title>Список Русского населения</title>
<meta http-equiv="Content-Type" content="text/hem; charset=windows-1251">
</head>
<body>
<p><a class=link href="add.php" title="">Добавить себя</a></p>
<table width="15" border="0">
<tr>
<td>
<?
include "config.php";
If (empty($start)) $start = 0;
If ($start < 0) $start = 0;
$pnumber = 10;
$tot = mysql_query("Select count(*) from users where hide=0;");
$query = "select * from users where hide=0 order by CharsNick ASC limit ".$start." ".$pnumber.";";
$thm = mysql_query($query);
if ($tot && $thm)
{
$total = mysql_fetch_array($tot);
$count = $total['count(*)'];
if ($start > 0) print "<a href=index.php?start=".($start - $pnumber)."><b>Назад</b></a>";
If ($count > $start + $pnumber) print "<a href=index.php?start=".($start + $pnumber)."><b>Вперед</b></a>";
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$RealName = trim($themes['RealName']);
$Email = trim($themes['Email']);
$URL = trim($themes['URL']);
$ICQ = trim($themes['ICQ']);
$Comment = trim($themes['Comment']);
?>
<table border=1 width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<b><? echo $CharsNick; ?></b>
</tr>
</td>
<?
}
} else puterror("Ошибка при выборке таблиц...");
?>
</table>
</body>
</head>
</html>
|
Но он пишет Ошибка при выборке таблиц..., почему? | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 00:33)
| | Вы после строки $thm = mysql_query($query); напишите следующее:
mysql_error($tot);
mysql_error($thm);
|
| |
|
|
|
|
|
|
|
для: Саня
(17.03.2006 в 02:28)
| | Warning: mysql_error(): supplied resource is not a valid MySQL-Link resource in D:\WebServer\WWW\Perepis\spisok.php on line 20
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in D:\WebServer\WWW\Perepis\spisok.php on line 21
Ошибки в этих двух строках
mysql_error($tot);
mysql_error($thm);
Или я что то не понимаю. | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 03:18)
| | в limit нужно откуда и докуда писать через запятую :)
Ошибки в этих двух строках
mysql_error($tot);
mysql_error($thm);
а в этих строках ошибок нет... mysql_error - показывает какие ошибки прошли в sql запросе :) | |
|
|
|
|
|
|
|
для: kasmanaft
(17.03.2006 в 10:42)
| | $query = "select * from users where hide=0 order by CharsNick ASC limit ".$start." ".$pnumber.";
запятую пропустили limit ".$start.", ".$pnumber."; и зачем-то лишний раз "; после запроса | |
|
|
|
|
|
|
|
для: elenaki
(17.03.2006 в 11:24)
| | Спасибо большое проблемма была и вправду из за запятой :)
Но хочу сделать следущее:
Например есть 2 мира, мир1 и мир2.
И в БД храняться естественно все эти данные, дак вот как сделать 2 таблицы, мир1 и мир2.
В первую вписывались бы чары которые зарегестрированы на мире1 а во вторую те кто зарегестрирован в мире2.
|Mir1 | |mir2 |
|Char1| |Char3|
На примере все товоже кода выше.
Просто не понимаю.. Маленький еще может :) | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 13:40)
| | А в одну таблицу с чарами добавить столбик с номером мира нельзя?
Или Чары могут одновременно в двух мирах существовать? | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 13:45)
| | А столбик и есть :)
Просто надо как то делать на пшп как бы это отсортовалось по столбикам. | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 00:33)
| | Вообщем решил для начала чтоб просто выводилась ники, в разных столбиках.
<html>
<head>
<title>Список Русского населения</title>
<meta http-equiv="Content-Type" content="text/hem; charset=windows-1251">
</head>
<body>
<p><a class=link href="add.php" title="">Добавить себя</a></p>
<table width="15" border="0">
<tr>
<td>
<?
include "config.php";
$query = "select * from users where hide=0, CharsWorld=Secura order by CharsNick ASC";
$thm = mysql_query($query);
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$RealName = trim($themes['RealName']);
$Email = trim($themes['Email']);
$URL = trim($themes['URL']);
$ICQ = trim($themes['ICQ']);
$Comment = trim($themes['Comment']);
?>
<table border=1 width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<b>Secura</b>
</tr>
</td>
<tr>
<td>
<b><? echo $CharsNick; ?></b>
</tr>
</td>
<?
} else puterror("Ошибка при выборке таблиц...");
?>
</table>
</body>
</head>
</html>
|
Но ошибка
Parse error: syntax error, unexpected T_ELSE in D:\WebServer\WWW\Perepis\spisok.php on line 38
38 - линия это "} else puterror("Ошибка при выборке таблиц...");"
И желательно еще как то сделать чтоб чар с миром 1, попадал в первый столбик, а чар с миром 2, попадал во второй столбик. | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 15:09)
| | в while нельзя else использовать :)
это только для if'a....
на счет миров....
че-то не соображу как бы так сделать "на лету"... я бы наверно сделал так:
1) можно заносить ники в массив (или массив двумерный или два массива... а потом уже выводить без проблем...
2) можно сделать в два цикла... (менее желательный способ)... первый цикл будет заносить первый мир, а второй (уже после работы первого цикла) - второй мир :) | |
|
|
|
|
|
|
|
для: kasmanaft
(17.03.2006 в 15:27)
| | Можно на примере, первый способ? | |
|
|
|
|
|
|
|
для: kasmanaft
(17.03.2006 в 15:27)
| | Еще надо учитывать что меров та не 2, а 22+ | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 00:16)
| | вот пример работы с двумерным массивом...
<?php
$count_worlds = 22;
// для примера присваеваем массиву значиния...
for ($i = 0; $i < $count_worlds; $i++)
for ($q = 0; $q < 10; $q++)
{
$worlds [$i][$q] = $q;
}
// выводим "ники" 22-го мира
for ($i = 0; $i < 10; $i++)
echo $worlds [21][$i];
?>
|
после работы скрипта у нас будет двумерный массив $worlds [номер мира] [ники мира] | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 13:59)
| | Всеровно не понимаю :) Как это все будет отображаться. | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 14:22)
| | так и думал что не поймешь ничего :) поэтому зря не теряя времени, переделал твой скрипт :)
не знаю будет он работать или нет - проверить не могу...
<html>
<head>
<title>Список Русского населения</title>
<meta http-equiv="Content-Type" content="text/hem; charset=windows-1251">
</head>
<body>
<p><a class=link href="add.php" title="">Добавить себя</a></p>
<table width="15" border="0">
<tr>
<td>
<?
include "config.php";
$query = "select * from users where hide=0, CharsWorld=Secura order by CharsNick ASC";
$thm = mysql_query($query);
$count_world = 22;
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$RealName = trim($themes['RealName']);
$Email = trim($themes['Email']);
$URL = trim($themes['URL']);
$ICQ = trim($themes['ICQ']);
$Comment = trim($themes['Comment']);
//тут нам нужно как-то узнать номер мира
//допустим он будет хранится в переменной $nw
$worlds [$nw][] = "$CharsNick||$CharsWorld||$RealName||$Email||$URL||$ICQ||$Comment";
}
echo "<table border=1>"
for ($i = 0; $i < $count_world; $i++)
{
echo "<tr><td>Мир $i";
for ($q = 0; $q < count($worlds[$i]); $q++)
{
echo "<tr><td>$worlds [$nw][$q] </td></tr>";
}
echo "</td></tr>";
}
echo "</table>";
?>
</body>
</head>
</html>
|
по идее работать должен... я там переделал оформление - сделал нагляднее, что ли...
вобщем попробуй разобраться, если что пиши :) | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 14:39)
| | пока все храниться будет в таком виде
ник||название мира(?)||имя||и так далее....
а потом можно разбить эту строку split или рег выражением и оформить как надо
замечания по моему скрипту:
1) забыл закрыть таблицу...
...
...
}
echo "</table>";
?>
</td>
</tr>
</table>
...
|
2) нужно изправить как-то твой запрос в базу... нужен не только мир Secura а все сразу... причем нужно знать как-то их номера | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 14:41)
| | Боольшое спасбио, щя все буду пробывать и тыкаться.
$RealName = trim($themes['RealName']);
$Email = trim($themes['Email']);
$URL = trim($themes['URL']);
$ICQ = trim($themes['ICQ']);
$Comment = trim($themes['Comment']);
В принцыпе вот это вообще не нужно в этом файле, это потом будет уже детальная информация по персонажам.
Нужно только сортировка по именам в столбике для каждого мира.
Вообщем мягко говоря нифига не понимаю ))
<?
include "config.php";
$query = "select * from users where hide=0 order by CharsNick ASC";
$thm = mysql_query($query);
$count_world = 70;
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
//тут нам нужно как-то узнать номер мира
//допустим он будет хранится в переменной $nw
$worlds [$nw][] = "$CharsNick||$CharsWorld";
}
echo "<table border=1>"
for ($i = 0; $i < $count_world; $i++)
{
echo "<tr><td>Мир $i";
for ($q = 0; $q < count($worlds[$i]); $q++)
{
echo "<tr><td>$worlds [$nw][$q] </td></tr>";
}
echo "</td></tr>";
}
echo "</table>";
?>
|
Пишет Parse error: syntax error, unexpected T_FOR, expecting ',' or ';' in D:\WebServer\WWW\Perepis\spisok.php on line 27
27 линия - for ($i = 0; $i < $count_world; $i++)
Чо то как то тут так много всего. попробую еще раз обьянсть.
В базе данных 2 столбца НикЧара и МирЧара.
допусти в бд есть пару запесей
1|Mir1
2|mir3
3|mir 1
4|mir2
Надо естевенно чтоб это все отображалось. Посколку мира 3 то будет 3 столбика, в каждом столбике отображаються имена персонажей, которые собственно находяться в этом мире.
надо чтоб после запроса естественно он сам распределял этих персонажей по этим стобикам.
Миров кстати 70 :) | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 17:05)
| | ну вот, все таки я допустил ошибку :)
echo "<table border=1>" - забыл вконце точку с запятой....
а еще в скрипте тебе нужно как то знать номер мира... у миров есть номера?
//тут нам нужно как-то узнать номер мира
//допустим он будет хранится в переменной $nw | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 17:27)
| | ТОлько названия, все уникальные, можно названиям намера наверно присвоить.
Если учесть что еще будет форма добавления записи, и там можнло будет выбрать мир...
И я себе пресдставлял это так:
По ширине 4 колонки:
+------------+ +------------+ +------------+ +------------+
| World1 | | World2 | | World3 | | World4 |
+------------+ +------------+ +------------+ +------------+
| Chars1 | | Chars1 | | Chars1 | | Chars1 |
| Chars2 | | Chars2 | | Chars2 | | Chars2 |
| Chars3 | | Chars3 | | Chars3 | | Chars3 |
| Chars4 | | Chars4 | | Chars4 | | Chars4 |
| Chars5 | | Chars5 | | Chars5 | | Chars5 |
|
| |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 18:11)
| | ну вообще-то можно, но для этого скорее всего нужно будет добавить еще один столбец (колонку или как их там.. вылетело :)) в таблицу базы...
но можно попробовать foreach... счас поэксперементирую и отпишусь :)
а я себе представляю такую базу в таком виде
id | name | msg
1 | Secura | lalalal
2 | ~~~~~~| blablaba | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 18:19)
| | неужели по Названию нельзя? Уникальные же. | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 18:21)
| | уникальные то они уникальные.. вобщем счас попробую сделать как есть :) | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 18:22)
| | вот.. вроде сделал как надо :)
<?
include "config.php";
$query = "select * from users where hide=0 order by CharsNick ASC";
$thm = mysql_query($query);
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$worlds [$CharsWorld][] = "$CharsNick";
}
echo "<table border=1>";
foreach ($worlds as $world_name => $arr)
{
echo "<tr><td>Мир $world_name";
for ($q = 0; $q < count($worlds[$world_name]); $q++)
{
echo "<tr><td>$worlds [$world_name][$q] </td></tr>";
}
echo "</td></tr>";
}
echo "</table>";
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 18:40)
| | Помойму с этйо строчкой что то не то
echo "<tr><td>$worlds [$world_name][$q] </td></tr>";
И в браузере у меня отображаеться...
Мир Secura
Array [Secura][0] | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 18:51)
| | ну да...ты прав... попробуй замени ее на эту:
echo "<tr><td>".$worlds[$world_name][$q]."</td></tr>"; | |
|
|
|
|
|
|
|
для: Бамси
(17.03.2006 в 00:33)
| | Класс, все работает, но почти все )))
Вообщем все норм отображаеться но я создал еще одну запись с другим миром и и это все идет в стоблик.
Secura <- MIR
Chesnok
Solker
Chimera <- MIR
masya
Можешь посомтреть кстати.
http://195.131.168.201/Perepis/spisok.php | |
|
|
|
|
|
|
|
для: Бамси
(18.03.2006 в 19:41)
| | ну да, в столбик... я специально так сделал :)
потому как 70 столбиков уместить в одну строчку.... ну если хочешь можешь переделать :)
...
}
echo "<table border=1><tr>";
foreach ($worlds as $world_name => $arr)
{
echo "<td>Мир $world_name <br>";
for ($q = 0; $q < count($worlds[$world_name]); $q++)
{
echo "$worlds [$world_name][$q] <br>";
}
echo "</td>";
}
echo "</tr></table>";
?>
|
так должно быть в одну строчку... вобщем делай как хочешь :)
а посмотреть мне так и не удалось - ты наверно уже в офлайн :) | |
|
|
|
|
|
|
|
для: kasmanaft
(18.03.2006 в 20:20)
| | Всеровно это не совсем то, тут записи о мирах появляються только есть записи о мирах в БД.
А мне надо чтоб например эти столбикис мирами уже были нарисованы, но были пустые. Тоесть столбики отображаються даже если нет записей.
И чтоб в этих столбиках уже появлялись записи.
Например есть 1 запрос, он вытаскивает всю инфу с БД, и сортирует уже сам все записи по столбикам.
Я хотел зделать 70 запросов на БД для каждого столбика отдельно, но этот как то тупо будет :) | |
|
|
|
|
|
|
|
для: Бамси
(21.03.2006 в 16:58)
| | тогда наверно можно перед циклом while (...........) заполнить массив - чтобы там были индексы миров...
делаем выбору из базы всех миров... потом
while ($xxx = mysql_fetch_array($xxx))
{
$worlds[$world_name] = ''; //или можно попробовать $worlds[$world_name][] = '';
}
|
думаю так должно получиться...
(только это просто пример, а не готовый скрипт :) просто наводка так сказать :)
(правда мотом php будет ругаться чуть-чуть, но ты так сделай пока :) | |
|
|
|
|
|
|
|
для: kasmanaft
(21.03.2006 в 20:31)
| | Увы мой скудный ум не может это понять :) | |
|
|
|
|
|
|
|
для: Бамси
(22.03.2006 в 01:10)
| | жалко.... :))
ладно.. давай помогу :)
напиши запрос, чтобы выбрать все миры(а).. select ...
а то я то не знаю структуру твоей базы...
ps: заведи новую тему наверно... а то это большая уже... | |
|
|
|
|
|
|
|
для: kasmanaft
(22.03.2006 в 12:24)
| | Не хочу заводить тему, т.к. не хочу засорять форум своими ламерскими запросами :)
Просто запрос на выборку всех миров?
Дак это делает Select * from Users; :)
А вообще структура таблицы users:
CREATE TABLE 'users' (
'ID' int(8) NOT NULL default '0',
'CharsNick' text NOT NULL,
'CharsWorld' text NOT NULL,
'RealName' text NOT NULL,
'Email' text NOT NULL,
'URL' text NOT NULL,
'ICQ' text NOT NULL,
'Comment' text NOT NULL,
'Puttime' datetime default NULL,
'Hide' int(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 | |
|
|
|
|
|
|
|
для: Бамси
(22.03.2006 в 16:07)
| | так у тебя есть список всех миров где-нибудь???
в таблице users как я понимаю, лежат данные о зареганых пользователях и их пренадлежность к какому-то миру... так ?
если так, то это наверно не пойдет... мы же не узнаем о существовании мира blablabla, если в нем не будет зареганых усеров...
вобщем нужен спивок всех миров :)
(и все-таки заведи другую тему... типа "Скрипт для переписи 2" а то долго грузится уже... | |
|
|
|
|
|
|
|
для: kasmanaft
(22.03.2006 в 19:18)
| | Похоже, судя по тому, что CharsWorld хранит текст, то есть название, а не идентификатор мира, такого списка и вправду нет. А жаль.
С другой стороны - кому нужен мертвый мир? :)
SELECT DISTINCT CharsWorld FROM users | |
|
|
|