|
Автор |
Сообщение |
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
Привет всем. Делаю он лайн игру на мускуле(просто ради учебы), столкнулся с проблемой добавления,обновления,удаления, данных с бд. Помогите. В книге например нет тега упдате в коде пхп. Есть отдельно для выполнения _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
а в чем собственно проблема?... аналогичным образом все делается.... |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
den писал(а): |
а в чем собственно проблема?... аналогичным образом все делается.... |
Ну например я столкнулся с проблемой.
У меня есть таблица:
#
#Последние зареганые
#
CREATE TABLE `last_reg` (
`id` TINYTEXT NOT NULL # id
`nick` TINYTEXT NOT NULL, # последний ник
`id2` INT(1) NOT NULL, #шняга
PRIMARY KEY (`id2`)
) TYPE=MyISAM COMMENT='Инфа о последних';
INSERT INTO last_reg (id,nick,id2) # заполняем таблицу
VALUES (1, 'nikogo',0);
.
Пойдее етот код должен обновлять данные о последних регившихся:
mysql_query("UPDATE `last_reg` SET `id` = '".$addid."', `nick` = '".$nick."' WHERE id2='1' LIMIT 1;"); Ошибку не выдает-значит обновляет.
Тогда код:
$id2="1";
$q_last = @mysql_query("SELECT * FROM `last_reg` WHERE `id2`='0';"); // выбираем значения с первой строки
$last = @mysql_fetch_array($q_last);
$id = $last['id']; // Сколько всего зарегано
$nick = $last['nick']; // Последний зареганый
echo "Всего зарегестрировано : $id <br>
Последний зарегестрированый : $nick";
Должен вывести последнего зареганого и его ник. Так?а почему н еработает? _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
У тебя запрос неправильный.... Чтобы узнать количество строк в результате, нужно использовать mysql_num_rows(), потом выбрать имя где id = $last; и вывести его )) |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
den писал(а): |
У тебя запрос неправильный.... Чтобы узнать количество строк в результате, нужно использовать mysql_num_rows(), потом выбрать имя где id = $last; и вывести его )) |
Хм сейчас проверю. И у тебя в книге есь пару опечаток. Напиши полностью как должен выглядеть код с етим ровс? _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
запрос лучше формировать в переменной например
$q = 'select * from t where id=' . $id;
потом можно сделать так:
$res = mysql_query($q);
и так
echo $q;
чтобы просмотреть, какой именно запрос отправляется на сервер |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
den писал(а): |
запрос лучше формировать в переменной например
$q = 'select * from t where id=' . $id;
потом можно сделать так:
$res = mysql_query($q);
и так
echo $q;
чтобы просмотреть, какой именно запрос отправляется на сервер |
Resource id #4 _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Это ты увидел при выводе ресурса, при выводе запроса ($q) такого не будет |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
den писал(а): |
Это ты увидел при выводе ресурса, при выводе запроса ($q) такого не будет |
я написал как и ты и оно пишет такое _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Да не может оно такое писать, это ID ресурса, а вывести должно текстовую переменную. Давай полный код скрипта )) |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
$page=$_GET['page'];
include"functions.php";
html_head();
$N = 3 ;
if($page == ""){$page=0;}
$records = $page * $N;
$q = "select * from helmet limit ".$records.", $N ";
$r = mysql_query($q);
$n = mysql_num_rows($r);
$page++;
echo "<div class=osnovnoi><a href=helmets.php?page=$page>Далее</a></div>$page i $records";
for ($i=0; $i<$N; $i++)
{
$f = mysql_fetch_array($r);
echo"<div class=osnovnoi>Грейд: $f[grade]<br>
Защита: $f[defense]<br>
Название: $f[name]<br>
Картинка: <img src=\"$f[image]\"><br>
Тип: $f[tip]<br>
Цена: $f[price] аден</div>
";
}
html_niz();
?>
В книге написано-что етот скрипт постраницчно выводит с бд. Но! Он без тормозов и потом выводит пустые клетки _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
Евген
Зарегистрирован: 06.12.2008 Сообщения: 1 Откуда: Киев
|
|
|
|
Я думаю что в цикле for вместо $N должна быть $n. Кстати, а о какой книге вы говорите? |
|
Вернуться к началу |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
Евген писал(а): |
Я думаю что в цикле for вместо $N должна быть $n. Кстати, а о какой книге вы говорите? |
Столкнулся с ошибкой.
Она меня бесит=)
Короче я делаю скрипт обмена сообщениями юзеров.
Например у юзера два входящих.
#Запрос в БД
$zapros = "SELECT * FROM mail WHERE nick = '".$nick."' ORDER BY ID DESC";
$query = mysql_query($zapros);
if(!mysql_query($zapros)){echo "Сука ERROR ".mysql_errno()." ".mysql_error()."";}
$f = mysql_fetch_array($query);
$n = mysql_num_rows($query);
for( $i = 0 ; $i < $n ; $i++){
echo "<a href=\"./mail.php?mode=read&nick=$nick&msgid=".$f['id']."\">".$f['theme']."</a> от ".$f['from']." (Дата: ".$f['date'].") <br>";
}
Этим запросом я пойдее должен взять с БД сообщения юзера. Сортировав их по убыванию. Но оно выводит две строки одинаковых последних сообщений. Чем сообщений больше тем больше одинаковых строк =((
Структура БД.
#
# таблица почты
#
CREATE TABLE `mail` (
`id` int(16) NULL auto_increment, # id
`nick` TINYTEXT NOT NULL, # кому
`from` TINYTEXT NOT NULL, # от кого
`theme` TINYTEXT NOT NULL, # тема
`message` TEXT NOT NULL, # сообщение
`date` TINYTEXT NOT NULL, # дата
`read` TINYTEXT NOT NULL, # Статус сообщения
PRIMARY KEY (`id`)
)
# ------------------------------------------------------------------------------
Это не первый подобный скрипт.
А если не указывать WHERE - другой подобный скрипт работает. Спасите, время поджимает _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
xNEOx
Новенький
Зарегистрирован: 11.01.2008 Сообщения: 14 Откуда: Кривой Рог
|
|
|
|
Например сообщение последнее с темой * было.
* от 21 (Дата: 13.1.2009 15:12:19)
* от 21 (Дата: 13.1.2009 15:12:19)
* от 21 (Дата: 13.1.2009 15:12:19)
Вот так выводит ето все=( _________________ А давайте вы не будете указывать што мне делать, а я не буду говорить куда вам ити... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
$zapros = "SELECT * FROM mail WHERE nick =\"$nick\" ORDER BY ID DESC"; |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
|
|