26

Re: Дата для каждого входа

Setroler
Я не понял, вы разобрались? Или еще что-то не понятно?

27

Re: Дата для каждого входа

Hanut сказал:

Setroler
Я не понял, вы разобрались? Или еще что-то не понятно?

Не понятно, почему он выводит 0. А не даты

28

Re: Дата для каждого входа

Setroler
Возьмите переменную $bid и подставьте ее значение в запрос, который выполните в phpMyAdmin. Если там не будет нулей, то их не будет и в скрипте.

29 (изменено: Hanut, 2010-07-01 00:14:04)

Re: Дата для каждого входа

хм, как ни странно при создании команды, даты создаются нормально

        $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

30

Re: Дата для каждого входа

Setroler
Прокомментировал в коде строку выборки.

На счет даты. При вставке (INSERT), я вижу переменную $date, что вы вставляете в поле даты при обновлении записи (UPDATE)? Как формируется переменная $date? При обновлении, если надо обновить дату вступления, используйте такой же метод создания даты, как и для переменной $date.

31

Re: Дата для каждого входа

Сейчас так:
Код на вступление:

<?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'];

32

Re: Дата для каждого входа

Не вижу формирование переменных $date, $uid, $tid, которые используются при выборке и вставке в таблицу cs_playerjoin.

33

Re: Дата для каждого входа

Hanut сказал:

Не вижу формирование переменных $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'];


?>

34

Re: Дата для каждого входа

Setroler
Не вижу переменной $uid.

35 (изменено: Setroler, 2010-07-04 11:00:21)

Re: Дата для каждого входа

Простите за столь долгий ответ, были проблемы с интернетом. Сегодня посмотрю - исправлю

36 (изменено: Setroler, 2010-07-04 13:38:57)

Re: Дата для каждого входа

Hanut сказал:

Setroler
Не вижу переменной $uid.

а как я её от туда достану? у меня вместо неё уже есть переменные
$id_user = $roster6['id'];
и вместо tid
$id_team = $roster['id'];

37

Re: Дата для каждого входа

Есть запрос на вставку данных:
$sql = 'INSERT INTO `cs_playerjoin` (`id_user`, `id_team`,`joindate`) VALUES ("' .$uid . '", "' . $tid . '","' .$date . '")';

Откуда берется переменная $uid?

38

Re: Дата для каждого входа

Hanut сказал:

Есть запрос на вставку данных:
$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'];
}

39

Re: Дата для каждого входа

Значит надо получить поле id из таблицы cs_bio и использовать его в переменной $uid.