[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. bombeg

    bombeg Member

    Joined:
    27 Oct 2008
    Messages:
    136
    Likes Received:
    83
    Reputations:
    8
    открой любой мануал, ты спрашиваешь основы.
     
  2. Osip

    Osip New Member

    Joined:
    20 Jan 2008
    Messages:
    14
    Likes Received:
    4
    Reputations:
    0
    А как понять что бы зафиксировалась дата? И ещё, дата в каком формате? И ещё, вставлять INSERT читать SELECT. И ещё, нафег писать 3 поста, если можно нажать edit и отредактировать?
     
    2 people like this.
  3. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    дата в формоте DATE а отображается 00-00-0000 =(
     
  4. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Byrger создай поле
    Code:
    `date` timestamp NOT NULL default CURRENT_TIMESTAMP
    а када будешь выдёргивать дату делай
    PHP:
    $res mysql_query(SELECT UNIX_TIMESTAMP(date) AS date FROM `newsWHERE `id`=1);
    $fetch mysql_fetch_assoc($res);
    а потом чтоб получить дату в любом формате можно сдлеать так
    PHP:
    date('d-m-Y',$fetch['date']);
     
    #6144 Doom123, 15 Nov 2008
    Last edited: 15 Nov 2008
  5. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    А можно попросить вас написать как будет выглядить SQl запрос...


    ----Через 5 мин ----
    Всё сделал...


    ---Ещё 2мин----
    А как сбросить счётчик id в БД
    А то у меня была таблица
    1...
    2...
    3...
    потом удалил это всё и нумирация навых данных пошла с 4
    Как можно это сбросить?
     
    #6145 Byrger, 15 Nov 2008
    Last edited: 15 Nov 2008
  6. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    В phpmyadmin, в опциях таблицы auto_increment/ primary key, не помню точно
     
  7. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Byrger а зачем собсно ? какая разниа ... ид будет 1 или 120 ?
     
    1 person likes this.
  8. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    А не подскажите пример фунции которая будет читать всё что есть в таблице...
    Или хотяб какой запрос за это отвечает в SQL...
     
  9. nilux

    nilux Elder - Старейшина

    Joined:
    19 Aug 2005
    Messages:
    100
    Likes Received:
    33
    Reputations:
    0
    SELECT * FROM 'table'
     
  10. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Я делаю так а массив выходит по последнему в списке полю :(


    PHP:
              $recmysql_query("SELECT * FROM news");
              
    $a_row=mysql_fetch_array($rec);  

    print 
    "<pre>";
     
    var_dump ($a_row);
      print 
    "</pre>";

     
    Code:
     array(6) {
      [0]=>
      string(1) "7"
      ["id"]=>
      string(1) "7"
      [1]=>
      string(4) "пока"
      ["news"]=>
      string(4) "пока"
      [2]=>
      string(19) "2008-11-15 15:11:37"
      ["date"]=>
      string(19) "2008-11-15 15:11:37"
    }
    Вот таблица News (скрин)
    _http://s1.dump.ru/viewer/1214346/

    Как вывести всё в этот массив...?
     
    #6150 Byrger, 15 Nov 2008
    Last edited: 15 Nov 2008
  11. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    PHP:
    print "<pre>"
    while(
    $a_row=mysql_fetch_array($rec))   
    {

     
    var_dump ($a_row); 

    }  print 
    "</pre>";
     
  12. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Да супер, вывелись 3 массива...
    А как вывести содержимое массивов?
    Допустим id news date
     
    #6152 Byrger, 15 Nov 2008
    Last edited: 15 Nov 2008
  13. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    PHP:
    $recmysql_query("SELECT `id`,`news`,UNIX_TIMESTAMP(date) AS date FROM news WHERE 1");

    while(
    $a_row=mysql_fetch_assoc($rec))    


     echo 
    'id:'.$a_row['id'];
     echo 
    ' news:'.$a_row['news'];
     echo 
    ' date:'.date('d-m-Y',$a_row['date']).'<br />';

    }  
     
    1 person likes this.
  14. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Как-то странно теперь не могу послать запрос на создание ИД который автоматом задаётся и Дату...
    Напишите плиз SQL запросы на это если не сложно (на созданее полей в БД)



    И почему он мне после
    PHP:
     echo date('d-m-Y',$a_row['date']);
    Выводит 01-01-1970 ?

    Может сделать что-то типа
    PHP:
     echo substr ($a_row['date'],0,10); 
     
    Он выводит но в формате 2008-11-15
    А надо 15.11.08
     
    #6154 Byrger, 15 Nov 2008
    Last edited: 15 Nov 2008
  15. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Byrger,
    http://ua2.php.net/date
     
  16. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    имхо для даты лучше создать поле в БД с типом datetime и вносить туда запись при помощи NOW()

    Code:
    CREATE TABLE `blabla`(
       `id` INT NOT NULL auto_increment,
       `dt` DATETIME NOT NULL
       PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;
    Вносить запись так:
    PHP:
    mysql_query('INSERT INTO `blabla` VALUES(NULL, NOW())');
    и дата будет храниться в формате 2008-09-19 18:01:21

    А для вывода в удобном тебе формате используй регулярку.
    Я давненько писал подобную ф-цию, можешь переделать под себя. (там можно обойтись одной регуляркой)
    PHP:
    function mydate($date){
        if(
    preg_match('#^[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}$#'trim($date))){
            
    preg_match('#(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)#'trim($date), $out);
            if(
    $out[1] == date('Y') && $out[2] == date('m') && $out[3] == date('d')){
                
    $date 'Сегодня в '.$out[4].':'.$out[5];
            }elseif(
    $out[1] == date('Y') && $out[2] == date('m') && $out[3] == date('d') - 1){
                
    $date 'Вчера в '.$out[4].':'.$out[5];
            }else{
                
    $date $out[3].'.'.$out[2].'.'.$out[1].' в '.$out[4].':'.$out[5];
            }
        }
        return 
    $date;
    }
     
  17. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    .:EnoT:. извини конечно но бред ... что лучше назначить нынешний таймстамп а потом выводить дату в ЛЮБОМ ФОРМАТЕ или же ипаца с регулярками и тормозить процесс выполнения ??

    с помощью ф-ции date(); можно вывести дату как хочишь ... только нада указать второй параметр в виде таймстамп .... это наилучший выход(НЕ ИМХО)

    Byrger может ты наконецто возьмёшь книжку и сам всё прочитаешь и сделаешь? ... ты скорее всего не сделал default current_timestamp ты перед тем как писать чтото хотяб книжку чтоль прочти ...

    и кстате мускул не может УГАДАТЬ када была занесена запись если ты создал поле дайт ПОСЛЕ того как занёс запись!!!!!
     
    #6157 Doom123, 15 Nov 2008
    Last edited: 15 Nov 2008
  18. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    У меня PhpMyAdmin тупит или MySQl уже раз 20 разных запрсов пытался послать и нифига...
    _http://s1.dump.ru/viewer/1214885/


    ЗЫ. Я с книгой сижу но у меня что-то не получается SQL запросы через PhpMyAdmin сделать...



    Даже на такой запрос ругается
    Code:
     ALTER TABLE `faq` ADD `111` INT NOT NULL auto_increment
    Code:
     #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
     
    #6158 Byrger, 15 Nov 2008
    Last edited: 15 Nov 2008
  19. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Doom123,
    Просто для него я думаю будет лучше так, потому что я думаю он запутается с преобразованием даты) По хорошему конечно нужно создавать поле типа INT и вносить дату с помощью UNIX_TIMESTAMP(), а потом преобразовывать как угодно)
     
  20. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Code:
    CREATE TABLE `news` (
      `id` int(11) NOT NULL auto_increment,
      `date` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `news` text NOT NULL,
      PRIMARY KEY  (`id`),
      FULLTEXT KEY `news` (`news`)
    ) ENGINE=MyISAM
    
    Вот пример норм запроса ...

    в твоём запросе ты походу в конце запетую забыл
     
    #6160 Doom123, 15 Nov 2008
    Last edited: 15 Nov 2008
    1 person likes this.
Thread Status:
Not open for further replies.