Re: Дата для каждого входа
Setroler
Я не понял, вы разобрались? Или еще что-то не понятно?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → MySQL & phpMyAdmin → Дата для каждого входа
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Setroler
Я не понял, вы разобрались? Или еще что-то не понятно?
Setroler
Я не понял, вы разобрались? Или еще что-то не понятно?
Не понятно, почему он выводит 0. А не даты
Setroler
Возьмите переменную $bid и подставьте ее значение в запрос, который выполните в phpMyAdmin. Если там не будет нулей, то их не будет и в скрипте.
хм, как ни странно при создании команды, даты создаются нормально
$query = "INSERT INTO cs_playerjoin (id_user, id_team, joindate) VALUES ('$myid', '$tid', '$date')";
mysql_query($query) OR die(mysql_error());
а при вступлении вообще запись в phpmyadmin меняется на: дата: 0000-00-00. Я понял, что я не правильно выразил post поэтому надо изменить на $date, НО задается вопрос. Если он будет апдейтить одну запись, то тогда она будет применяться ко всем командам. А надо, чтобы к каждой разная дата была. У меня к примеру сейчас 2 команды. Создал одну 30-06-2010, дата вступления была 30-06-2010. Создал вторую, вступил сегодня(01-07-2010) и теперь к первой обновилось тоже на 01-07-2010.
p.s. подправил код с POST joindate на `joindate` = "' . $date . '"
<?php
// Возвращение строки данных в виде ассоциативного массива.
function P_mysql_row($sql) {
$data = false;
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$data = mysql_fetch_assoc($result);
mysql_free_result($result);
}
return $data;
}
// $sql = 'SELECT * FROM `cs_playerjoin` WHERE `id_user` = ' . $uid;
// Исправленный вариант с выбором по идентификаторам пользователя и команды.
$sql = 'SELECT * FROM `cs_playerjoin` WHERE `id_user` = ' . $uid . ' AND `id_team` = ' . $tid;
if ($row = P_mysql_row($sql)) {
// Здесь UPDATE, или что-то еще по первичному ключу таблицы cs_playerjoin. Массив данных в переменной $row, например $row['id_user'].
$sqldd = 'UPDATE `cs_playerjoin` SET `joindate` = "' . $_POST['joindate'] . '" WHERE `id` = ' . $row['id'];
mysql_query($sqldd);
} else {
// Если у поля даты с типом timestamp в БД стоит параметр CURRENT_TIMESTAMP, то можно дату не вводить, она будет добавлена автоматически.
$sql = 'INSERT INTO `cs_playerjoin` (`id_user`, `id_team`,`joindate`) VALUES ("' .$uid . '", "' . $tid . '","' .$date . '")';
mysql_query($sql);
}
?>
Я честно говоря запутался, какой должен быть селект для вывода на сайт. Если айди команды $tid айди юзера $uid
Setroler
Прокомментировал в коде строку выборки.
На счет даты. При вставке (INSERT), я вижу переменную $date, что вы вставляете в поле даты при обновлении записи (UPDATE)? Как формируется переменная $date? При обновлении, если надо обновить дату вступления, используйте такой же метод создания даты, как и для переменной $date.
Сейчас так:
Код на вступление:
<?php
// Возвращение строки данных в виде ассоциативного массива.
function P_mysql_row($sql) {
$data = false;
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$data = mysql_fetch_assoc($result);
mysql_free_result($result);
}
return $data;
}
$sql = 'SELECT * FROM `cs_playerjoin` WHERE `id_user` = ' . $uid;
if ($row = P_mysql_row($sql)) {
// Здесь UPDATE, или что-то еще по первичному ключу таблицы cs_playerjoin. Массив данных в переменной $row, например $row['id_user'].
$sqldd = 'UPDATE `cs_playerjoin` SET `joindate` = "' . $date . '" WHERE `id` = ' . $row['id'];
mysql_query($sqldd)or die('НЕ УДАЕТСЯ ОБНОВИТЬ ЗАПИСЬ. СВЯЖИТЕСЬ С АДМИНИСТРАЦИЕЙ САЙТА!');
} else {
// Если у поля даты с типом timestamp в БД стоит параметр CURRENT_TIMESTAMP, то можно дату не вводить, она будет добавлена автоматически.
$sql = 'INSERT INTO `cs_playerjoin` (`id_user`, `id_team`,`joindate`) VALUES ("' .$uid . '", "' . $tid . '","' .$date . '")';
mysql_query($sql)or die('НЕ УДАЕТСЯ СОЗДАТЬ ЗАПИСЬ. СВЯЖИТЕСЬ С АДМИНИСТРАЦИЕЙ САЙТА!');
}
?>
На селект из базы, и показ юзерам
$joined = mysql_query("SELECT *, DATE_FORMAT(`joindate`, '%d-%m-%Y') AS `joindate_format` FROM cs_playerjoin WHERE id = '$bid'");
while($join = mysql_fetch_array($joined)) {
$id = $join['id'];
$joindate = $join['joindate_format'];
$id_user = $join['id_user'];
$id_team = $join['id_team'];
$id_user = $roster6['id'];
$id_team = $roster['id'];
Не вижу формирование переменных $date, $uid, $tid, которые используются при выборке и вставке в таблицу cs_playerjoin.
Не вижу формирование переменных $date, $uid, $tid, которые используются при выборке и вставке в таблицу cs_playerjoin.
$date форсмруется в конфиге, с ней все хорошо.
$date = date("Y-m-d");
<?
IF ( !DEFINED('IN_SCRIPT') ) die('Direct Access to file denied');
$roster1 = mysql_query("SELECT * FROM cs_teams WHERE teamname = '$teamname'");
while($roster = mysql_fetch_array($roster1)) {
$tid = $roster['id'];
$roster2 = mysql_query("SELECT * FROM cs_team WHERE tid = '$tid'");
while($ros = mysql_fetch_array($roster2)) {
$pid = $ros['pid'];
$roster3 = mysql_query("SELECT * FROM cs_bio WHERE id = '$pid'");
while($roster6 = mysql_fetch_array($roster3)) {
$bid = $roster6['id'];
$ravatar = $roster6['avatar'];
$ruser = $roster6['username'];
$steam_id = $roster6['steam_id'];
$icq = $roster6['icq'];
$alias = $roster6['alias'];
$country = $roster6['country'];
$city = $roster6['city'];
$status = $roster6['status'];
$prank = $roster6['rank'];
$joined = mysql_query("SELECT *, DATE_FORMAT(`joindate`, '%d-%m-%Y') AS `joindate_format` FROM cs_playerjoin WHERE id = '$bid'");
while($join = mysql_fetch_array($joined)) {
$id = $join['id'];
$joindate = $join['joindate_format'];
$id_user = $join['id_user'];
$id_team = $join['id_team'];
$id_user = $roster6['id'];
$id_team = $roster['id'];
?>
Setroler
Не вижу переменной $uid.
Простите за столь долгий ответ, были проблемы с интернетом. Сегодня посмотрю - исправлю
Setroler
Не вижу переменной $uid.
а как я её от туда достану? у меня вместо неё уже есть переменные
$id_user = $roster6['id'];
и вместо tid
$id_team = $roster['id'];
Есть запрос на вставку данных:
$sql = 'INSERT INTO `cs_playerjoin` (`id_user`, `id_team`,`joindate`) VALUES ("' .$uid . '", "' . $tid . '","' .$date . '")';
Откуда берется переменная $uid?
Есть запрос на вставку данных:
$sql = 'INSERT INTO `cs_playerjoin` (`id_user`, `id_team`,`joindate`) VALUES ("' .$uid . '", "' . $tid . '","' .$date . '")';Откуда берется переменная $uid?
аа, секунду.
вот таким образом, только это при вступлении в команду
$getme = mysql_query("SELECT id FROM cs_bio WHERE username = '$me'");
while($myid = mysql_fetch_array($getme)) {
$uid = $myid['id'];
}
Значит надо получить поле id из таблицы cs_bio и использовать его в переменной $uid.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → MySQL & phpMyAdmin → Дата для каждого входа
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.