Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Dodawanie kilku wartości (wierszy) do bazy
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Tworząc dalej moje systemy znów się zatrzymałem. Z powodu wiedzy... tongue.gif
Robię teraz inny system, ale moje pytania dotyczy samego języka SQL.

Chciałbym dodać kilka wartości. Mam kod php który wyciaga liczbę z sesji i wyswietla tyle grup pól ile wynosiła liczba. Pola wysietlam za pomocą pętli. Problem w tym, jak dodać teraz to wszystko do bazy danych. Wiem jak dodać jedną wartośc, ale kilka?
  1. CYTATY (cytatid, autor, tresc) <- STRUKTURA

  1. INSERT INTO cytaty VALUES(autor, tresc) <- KOD DLA WIERSZA, a kilka?


Teraz dwa pytania w jednym, albo trzy. Jedno wynika z drugiego. Załóżmy sytuacje. Dodajemy dużo wierszy, a potem usuwamy część z nich. Ze środka, końca początku.
  • Mamy ustawione dla klucza primary auto increment. Czy można jakoś wymusić, abym ja mógł sobie wpisać tylko jeden raz id - oczywiscie unikalne?
  • Jeżeli powyższe pytanko nie, to jak można obniżyć ostatnią wartość primary id. Dane mamy klucze 1,2,3,4,5. Jeżeli usuniemy klucze 3,4,5, to jezeli dodamy kolejne wartości klucze będą wynosić 1,2,6,7,8. Jak można skasować ten próg?
  • W sytuacji początkowej, zostały nam klucze 2,3,5,7,23,39,40,45,46,47. Czy mozna je jakoś poustawiać, aby sie scaliły? Czyli zmniejszyć klucz pierwszy o liczbę o jeden większą od poprzedniego? Aby uzyskać 1,2,3,4,5,6,7,8,9,10.

Pozdrawiam!
b4x
Chciałbym dodać kilka wartości. Mam kod php który wyciaga liczbę z sesji i wyswietla tyle grup pól ile wynosiła liczba. Pola wysietlam za pomocą pętli. Problem w tym, jak dodać teraz to wszystko do bazy danych. Wiem jak dodać jedną wartośc, ale kilka?

- Nie rozumiem pytania, jeśli chciałbyś coś więcej wstawić w 1 wiersz to możesz skorzystać z serialize" title="Zobacz w manualu PHP" target="_manual - i całą tablice zapisać, przy odczycie unserialize" title="Zobacz w manualu PHP" target="_manual


# Mamy ustawione dla klucza primary auto increment. Czy można jakoś wymusić, abym ja mógł sobie wpisać tylko jeden raz id - oczywiscie unikalne?

- Oczywiście - tylko najlepiej żeby było "większe" niż pozostałe, później możesz mieć problemy. Po wykonaniu takiej akcji wykonaj zapytanie:

ALTER TABLE tabela AUTO_INCREMENT = TWOJEUNIKALNEID+1


# W sytuacji początkowej, zostały nam klucze 2,3,5,7,23,39,40,45,46,47. Czy mozna je jakoś poustawiać, aby sie scaliły? Czyli zmniejszyć klucz pierwszy o liczbę o jeden większą od poprzedniego? Aby uzyskać 1,2,3,4,5,6,7,8,9,10.

Ja bym pobrał wszystkie ID - i je "przeindeksował", i dla każdego zapytanie typu "UPDATE tabela SET id = $indeks WHERE id = $stare_id"
piotrooo89
Cytat
Ja bym pobrał wszystkie ID - i je "przeindeksował", i dla każdego zapytanie typu "UPDATE tabela SET id = $indeks WHERE id = $stare_id"


a co gdy ID w tabeli będzie połączony relacją z inną tabela? ten zabieg jest kompletnie bez sensu.
InosU31
INSERT INTO cytaty VALUES(autor, tresc) <- KOD DLA WIERSZA, a kilka?

to chyba o to Ci chodzi :
  1. INSERT INTO cytaty (autor, tresc)
  2. VALUES (autor, tresc),
  3. (autor1, tresc1),
  4. (autor2, tresc2);



o to Ci chodzilo questionmark.gif

mozesz takze :
  1. UPDATE cytaty SET autor = 'autor' AND tresc = 'tresc' WHERE id = '';

ale w tym drugim musi istniec taki rekord;)

Pozdrawiam
thomson89
Cytat(InosU31 @ 20.03.2009, 22:16:40 ) *
o to Ci chodzilo questionmark.gif


Tak o to.

A teraz jeszcze to pytanko:
Cytat
(...) jak można obniżyć ostatnią wartość primary id. Dane mamy klucze 1,2,3,4,5. Jeżeli usuniemy klucze 3,4,5, to jezeli dodamy kolejne wartości klucze będą wynosić 1,2,6,7,8. Jak można skasować ten próg?


Chyba sobie sam odpowiedziałem:

I do tego pytanko: jak znaleść aktualnie największe id?

Mam jakieś rozwiązanie...
wojtek1988
już sprawdzam:)
Michasko
Największe ID:
  1. SELECT max(id) FROM tabela

Możesz też wyciągać aktualną wartość pola Auto_increment z bazy 'Information_schema' - w niej masz dane o wszystkich tabelach wszystkich baz danych na Twoim serwerze. O ile jej nie usunąłeś... wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.