autom. hochzählen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von 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!

    Kommentar


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

      Kommentar


      • #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!

        Kommentar


        • #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

          Kommentar


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

            Kommentar


            • #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

              Kommentar


              • #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!

                Kommentar


                • #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

                  Kommentar


                  • #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!

                    Kommentar


                    • #11
                      kommt so aber kein fehler !!!


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

                      Kommentar


                      • #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!

                        Kommentar


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

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

                          Kommentar


                          • #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 |


                            Kommentar


                            • #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

                              Kommentar

                              Lädt...
                              X