Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Dodawanie kilku wartości (wierszy) do bazy
thomson89
post
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Witam!

Tworząc dalej moje systemy znów się zatrzymałem. Z powodu wiedzy... (IMG:http://forum.php.pl/style_emoticons/default/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!

Ten post edytował thomson89 20.03.2009, 21:37:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b4x
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

Ostrzeżenie: (0%)
-----


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"
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.
Go to the top of the page
+Quote Post
InosU31
post
Post #4





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

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

ale w tym drugim musi istniec taki rekord;)

Pozdrawiam
Go to the top of the page
+Quote Post
thomson89
post
Post #5





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat(InosU31 @ 20.03.2009, 22:16:40 ) *


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...

Ten post edytował thomson89 21.03.2009, 13:41:51
Go to the top of the page
+Quote Post
wojtek1988
post
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 8.02.2013

Ostrzeżenie: (0%)
-----


już sprawdzam:)
Go to the top of the page
+Quote Post
Michasko
post
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

Ostrzeżenie: (0%)
-----


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ś... (IMG:style_emoticons/default/wink.gif)

Ten post edytował Michasko 9.02.2013, 17:37:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 17:56