autom. hochzählen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • autom. hochzählen

    ich möchte nen feld hochzählen lassen, aber selber und nicht mit autoincrement

    hochgezählt werden soll immer der höchste wert des aktuellen jahres
    also das feld (date)

    hier mein fehlgeschlagener versuch
    PHP Code:
    <?php 
    $sql 
    "INSERT INTO 
                                    "
    .PREFIX."projekt 
                                SELECT 
                                    SELECT MAX(count)+1
                                VALUES (
                                    '',
                                    '"
    .$_POST['cid']."',
                                    '"
    .$_POST['projektname']."',
                                    '"
    .$_POST['status']."',
                                    NOW(),
                                    
    $endtime
                                    )"
    ;
    ?>
    hier noch die table

    Code:
    CREATE TABLE `wn_projekt` (
      `pid` int(10) NOT NULL default '0',
      `cid` int(10) NOT NULL default '0',
      `name` varchar(255) NOT NULL default '',
      `status` int(1) NOT NULL default '0',
      `date` datetime NOT NULL default '0000-00-00 00:00:00',
      `dateend` datetime NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (`pid`)
    ) TYPE=MyISAM;

    danke für die hilfe
    Last edited by mukraker; 05-01-2004, 14:17.
    thx Mukraker

  • #2
    SELECT und VALUES zusammen geht schon mal gar nicht.
    Ich versteh auch nicht ganz was du eigentlich willst. Den höchsten Wert + 1 ausgeben lassen oder in die DB schrieben?
    it's not a bug,
    it's a feature!

    Comment


    • #3
      den höchsten wert des akutuellen jahres um 1 erhöhen, sowie die den rest auch eintragen
      thx Mukraker

      Comment


      • #4
        So müsste es gehen:
        PHP Code:
        $sql "INSERT ".PREFIX."projekt (count, cid, projektname, status, date, dateend) VALUES ('MAX(count)+1','".$_POST['cid']."','".$_POST['projektname']."','".$_POST['status']."',
        NOW(), 
        $endtime)" 
        it's not a bug,
        it's a feature!

        Comment


        • #5
          PHP Code:
          <?php
          sql
          ="INSERT wn_projekt (pid, cid, name, status, date, dateend) VALUES ('MAX(pid)+1','65','dasdasd','0', NOW(), '')";
          ?>

          ist soweit denk ich mal schön und gut, doch fehlt soll nicht der max count von allem, sondern nur vom aktuellen jahr nehmen -> z.b. 2004
          thx Mukraker

          Comment


          • #6
            Dann musst du das in eine WHERE-Klausel schrieben.
            it's not a bug,
            it's a feature!

            Comment


            • #7
              schon ohne erfolg versucht
              PHP Code:
              <?php
              $sql 
              "INSERT INTO
                                              "
              .PREFIX."projekt 
                                              (pid, 
                                              cid, 
                                              name, 
                                              status, 
                                              date, 
                                              dateend) 
                                          VALUES 
                                              ('MAX(pid)+1',
                                              '"
              .$_POST['cid']."',
                                              '"
              .$_POST['projektname']."',
                                              '"
              .$_POST['status']."',    
                                              NOW(), 
                                              
              $endtime)
                                          WHERE 
                                              YEAR(date)="
              .date("Y")."";
              ?>
              thx Mukraker

              Comment


              • #8
                Nicht in der Abfrage!!!
                Vorher Daten auslesen, Aktion durch führen, auf Variable speichern und dann die nächste Abfrage machen.

                Bzw.: Jahr feststellen mit date("Y");
                und dann in der Abfrage "WHERE date LIKE "2004%"
                it's not a bug,
                it's a feature!

                Comment


                • #9
                  muss doch auch in einer gehen oder??

                  ich hab das jetzt so und es kommt keine error, doch leider bekomme wird kein wert erhöht, sondern als pid immer 0 geschrieben!!

                  PHP Code:
                  <?php
                                      $sql 
                  "INSERT INTO
                                                  "
                  .PREFIX."projekt 
                                                  (pid, 
                                                  cid, 
                                                  name, 
                                                  status, 
                                                  date, 
                                                  dateend) 
                                              VALUES 
                                                  ('(SELECT MAX(pid)+1 WHERE 
                                                  YEAR(date)="
                  .date("Y").")',
                                                  '"
                  .$_POST['cid']."',
                                                  '"
                  .$_POST['projektname']."',
                                                  '"
                  .$_POST['status']."',    
                                                  NOW(), 
                                                  
                  $endtime)
                                              "
                  ;
                  ?>
                  thx Mukraker

                  Comment


                  • #10
                    Jetzt vermischst du wieder unkorrekte Schreibweise mit unkorrektem Satzbau!

                    Das WHERE aus dem VALUES raus!
                    it's not a bug,
                    it's a feature!

                    Comment


                    • #11
                      kommt so aber kein fehler !!!


                      ich hab nun keine idee mehr wie ich das machen könnte.
                      thx Mukraker

                      Comment


                      • #12
                        Was ist damit?
                        PHP Code:
                        <?php
                        sql
                        ="INSERT wn_projekt (pid, cid, name, status, date, dateend) VALUES ('MAX(pid)+1','65','dasdasd','0', NOW(), '') WHERE WHERE date LIKE '".date("Y")."'";
                        ?>
                        it's not a bug,
                        it's a feature!

                        Comment


                        • #13
                          mit dem subselect muss es doch auch irgendwie gehen oder ?

                          http://www.mysql.com/doc/en/Subqueries.html
                          thx Mukraker

                          Comment


                          • #14
                            Original geschrieben von mukraker
                            mit dem subselect muss es doch auch irgendwie gehen oder ?
                            hast du mysql 4+ im einsatz?
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Comment


                            • #15
                              XGremliN dein teil funzt aber leider auch nicht!

                              das mit dem subquery ist vielleicht doch nocht so toll, 4.1 soll ja noch nicht so gut laufen

                              MySQL meldet: (XGremliN 's version)


                              You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE WHERE date
                              LIKE '2004%'' at line 9
                              thx Mukraker

                              Comment

                              Working...
                              X