MySQL kezdõ

Kezdőlap Fórumok Programozás MySQL kezdõ

10 bejegyzés megtekintése - 61-70 / 73
  • Szerző
    Bejegyzés
  • #2062875
    balev
    Felhasználó

      És mivel lehet lekérni egy tábla auto_increment mezőjének következő értékét?

      Van egy táblám, amiből manuálisan töröltem az utolsó két sort.

      Ha ebbe a táblába új rekord kerül, akkor a kulcs mező értéke szerint hozok létre automatikusan egy másik táblát. Ezek egymással relációban vannak, jelen esetben viszont nem találják egymást, mivel:

      Code:
      $query=mysql_query(„SELECT MAX(kulcs) FROM ” . DBNAME . „.stat”);
      $qhash=mysql_fetch_array($query);
      $tc=$qhash[„MAX(kulcs)”];
      $tc+=1;

      Ahol $tc lesz mondjuk 28, mivel a stat táblában a kulcs mező maximális értéke 27. Viszont az utolsó két sor törlése miatt a belső mutató nem 27, hanem 29.

      Szerk.: közbe rájöttem, de hülye vagyok. Hát mysql_insert_id()-t lekérem a stat-ból és csak utána hozom létre a másik táblát.

      #2062876
      Leslieman
      Felhasználó

        Aszonnya a doksi:
        „You can retrieve the most recent AUTO_INCREMENT value with the LAST_INSERT_ID() SQL function…”
        Ezzel megtudhatod a legutoljára beszúrt rekord értékét.

        Ha új rekordot szúrsz be, akkor kérd le ezzel az utolsó értéket, majd azzal kreáld meg a másik táblában az új rekordot!
        A mysql_insert_id() az C-s függvény. Ha neked az kell…  🙂

        #2062877
        balev
        Felhasználó
          Leslieman wrote:
          Aszonnya a doksi:
          „You can retrieve the most recent AUTO_INCREMENT value with the LAST_INSERT_ID() SQL function…”
          Ezzel megtudhatod a legutoljára beszúrt rekord értékét.

          Ha új rekordot szúrsz be, akkor kérd le ezzel az utolsó értéket, majd azzal kreáld meg a másik táblában az új rekordot!
          A mysql_insert_id() az C-s függvény. Ha neked az kell…  🙂

          Igen, mert PHP-vel megy a dolog. Közben én is rájöttem, hogy így kellene. Nem is értem, miért próbáltam megbonyolítani 🙂

          #2062878
          balev
          Felhasználó

            Technikai jellegű a kérdés.

            Van egy .xls fájllom, ebből szeretném feltölteni az adatokat a már előkészített táblába (sok rekordról van szó, ne kelljen már bepötyögni)

            Szóval erre való a „LOAD DATA INFILE” ugyebár, el is olvastam a leírást:
            http://dev.mysql.com/doc/refman/5.0/en/load-data.html

            Code:
            $query1=”LOAD DATA INFILE ‘/home/balev/www/hegshop/teszt.csv’ INTO TABLE hegshop.arucikkek
            FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘”‘ LINES TERMINATED BY ‘n’ (cikkszam, megnevezes, elv, csop, hutes, aresz)”;

            Ooo nagyon ügyes, tud .csv-be exportálni (be is lehet állítani, hogy mi legyen a szöveghatároló és mezőválasztó elem, stb.)

            Namost hiába állítom be, hogy ‘,’ legyen a mezőválasztó és ‘”‘ legyen a szöveghatároló, a következőképp hozza létre a .csv fájlt.

            411560,”CL 15 pisztolynyak-fix”,”MIG/MAG”,”150A”,”gázhűtés”,”nyak”
            411561,”CL 15 pisztolynyak-forgatható”,”MIG/MAG”,”150A”,”gázhűtés”,”nyak”
            411562,”CLB 15 pisztolynyak-fix”,”MIG/MAG”,”150A”,”gázhűtés”,”nyak”
            411563,”CLB 15 pisztolynyak-forgatható”,”MIG/MAG”,”150A”,”gázhűtés”,”nyak”
            411564,”CLM 15 pisztolynyak”,”MIG/MAG”,”150A”,”gázhűtés”,”nyak”

            A probléma ugye ott van, hogy az első mező (cikkszámok) nem kerülnek idézőjelek közé. Ez miért van? Ill. hogy tudnám megoldani a dolgot? .xls-ből nem tudom másként kiszedni, csak Ooo-val?

            #2062879
            Leslieman
            Felhasználó
              balev wrote:
              Namost hiába állítom be, hogy ‘,’ legyen a mezőválasztó és ‘”‘ legyen a szöveghatároló, a következőképp hozza létre a .csv fájlt.
              A probléma ugye ott van, hogy az első mező (cikkszámok) nem kerülnek idézőjelek közé. Ez miért van? Ill. hogy tudnám megoldani a dolgot? .xls-ből nem tudom másként kiszedni, csak Ooo-val?

              Nem értem, hogy mi a gond. Az első oszlopod biztos számként van beállítva, a szöveghatároló meg értelem szerűen a SZÖVEGET határolja :), nem a számokat.

              #2062880
              balev
              Felhasználó

                Állítsam szövegre? Lehet. De az az érdekes, hogy Ooo mindegyik oszlopot számként hozza fel… majd otthon megnézem.

                #2062881
                balev
                Felhasználó

                  S valóban. Átalkítottam szöveggé és jó lett az export.
                  Mentségemre legyen mondva, hogy már elég fáradt voltam, eszembe se jutott, hogy megnézzem a cella tulajdonságokat 🙂

                  #2062882
                  Leslieman
                  Felhasználó
                    balev wrote:
                    De az az érdekes, hogy Ooo mindegyik oszlopot számként hozza fel…
                    Na nehogymár megmagyarázd, hogy az Ooo a „gázhűtés” meg a „nyak” oszlopokat is számként hozza fel…  😉
                    #2062883
                    balev
                    Felhasználó

                      Pedig de. Jobb gomb, cella tulajdonságok, szám. A szövegre is. Nem tudom miért. Windows alatt nem egyébként.

                      #2062884
                      Wait
                      Felhasználó

                        Eszembe jutott egy kis MySQL elmélet a BOOLEAN típussal kapcsolatban (tinyint(1) ugyan az).

                        Tulajdonképp nem is két állása lehet csak, hanem – SQL – három. 0 és 1 állása teljesen oké, de lehet az értéke NULL is, így tulajdonképp három variációja van. MySQL alatt okozott nekem fejtörést jócskán, míg rájöttem a titok nyitjára 🙂

                      10 bejegyzés megtekintése - 61-70 / 73
                      • Be kell jelentkezni a hozzászóláshoz.