Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Modyfikacja forum Przemo
Forum PHP.pl > Forum > Przedszkole
AlexanderV
Zainstalowałem moduł zarządzania konkursami:
http://www.przemo.org/phpBB2/forum/viewtopic.php?t=95003

Wszystko wykonałem zgodnie z instrukcją, zapytania do bazy danych wykonałem, a jednak mimo wszystko mam problemy. Wszystko wygląda jakby działało poprawnie, jednak dy wpisuje w PA dane rubryki i klikam na Wyślij i wędruję na stronę główną to tam tabelka nadal jest pusta. Może ktoś mi pomóc?


Mozliwe jednak, że wykonuje jakiś błąd, gdyż podczas wklejania zapytania:


Cytat
INSERT INTO `phpbb_config` VALUES('trwajace_konkursy','');
INSERT INTO `phpbb_config` VALUES('zakonczone_konkursy','');
INSERT INTO `phpbb_config` VALUES('zapisz_sie','');



Wyświetla mi komunikat:

Cytat
Błąd

Zapytanie SQL:

INSERT INTO `phpbb_config`
VALUES (
'trwajace_konkursy', ''
);

MySQL zwrócił komunikat: Dokumentacja
#1062 - Duplicate entry 'trwajace_konkursy' for key 'PRIMARY'
sada
widocznie masz pierwszą kolumnę jako PRIMARY KEY
musisz dodać w insercie nazwy kolumn format jak poniżej:

  1. "INSERT INTO nazwa_tabeli (Tytul, Wykonawca) VALUES ('$tytul', '$wykonawca')"
AlexanderV
Czyli na przykładzie moich danych w pierwszyjm poście, jak to będzie wyglądać?
sada
  1. INSERT INTO `phpbb_config`(nazwakolumny1,nazwakolumny2) VALUES('trwajace_konkursy','');

gdzie nazwakolumny1 to nazwa kolumny gdzie ma być wpisany string 'trwajace_konkursy',

gdzie nazwakolumny2 to nazwa kolumny gdzie ma być wpisany pusty string '',
Robert007
Cytat
INSERT INTO `phpbb_config` VALUES('trwajace_konkursy','');
INSERT INTO `phpbb_config` VALUES('zakonczone_konkursy','');
INSERT INTO `phpbb_config` VALUES('zapisz_sie','');


A to nie przypadkiem nazwy kolumn?
Wtedy tak:

Kod
INSERT INTO `phpbb_config` (`trwajace_konkursy`,  `zakonczone_konkursy`, `zapisz_sie`) VALUES ('wartość1', 'wartość2', 'wartość3')


Chociaż mi się wydaję ze powino być na update bo nazwy kolumn o ile pamietam to config_name oraz config_value

Kod
UPDATE `phpbb_config` SET `config_value` = 'wartość' WHERE `config_name` = 'zakonczone_konkursy'
sada
a może tak jak mówi przedmówca chcesz ładować puste stringi
  1. INSERT INTO `phpbb_config`(trwajace_konkursy) VALUES('');
peter13135
@SADA

Jeśli do INSERT INTO daje się tyle samo wartości, co kolumn ma tabela, to nie trzeba dawać w nawiasie nazwy kolumn. PK nie ma nic do tego.

@Robert007

O ile mi wiadomo, ta tabela ma kolumny name i value (albo coś podobnego).

Do autora tematu:
Wejdź do bazy, odnajdź tą kolumnę i zobacz ile ma rekordów. Na moje oko, te rekordy są już dodane.
sada
@peter13135

Cytat
Jeśli do INSERT INTO daje się tyle samo wartości, co kolumn ma tabela, to nie trzeba dawać w nawiasie nazwy kolumn..

i jeśli są w tej samej kolejności co w zapytaniu biggrin.gif

w pierwszym poście powiedział, że ma jakiś błąd z primary key więc diagnoza moja była właśnie taka

do tej pory nie wiem jakie są kolumny w tabeli i co autor chciał osiągnąć zapytaniem
peter13135
#sada
Autor wyraźnie napisał błąd jaki "wywala" mu zapytanie, jego fragment : " Duplicate entry 'trwajace_konkursy' for key 'PRIMARY'" wcale nie ma nic do nazw kolumn w zapytaniu. Nie wiem, skąd mogłeś to wywnioskować.
Przypomnę, że (znalezione w necie) :
Kod
PRIMARY KEY to słowo kluczowe oznaczające dla kolumny, że jest ona kluczem głównym dla tebeli czyli unikalną wartością identyfikując jednoznacznie każdy rekord tebeli

Czyli po naszemu, każde pole kolumny PK ma mieć inną wartość. Każda próba dodanie drugiej takiej samej wartości (czyli duplikacji) da właśnie taki błąd. Wystarczy umieć czytać.
sada
@Peter13135 Taki sam wniosek wyciągnąłem.
Z tego że próbował wpisywać dwa razy tą samą wartość do kolumny z PRIMARY KEY wywniskowałem , że mógł pomylić kolumny.
Daruj sobie te wnioski o umiejętności czytania
Robert007
Cytat
@Robert007

O ile mi wiadomo, ta tabela ma kolumny name i value (albo coś podobnego).


Cytat
Chociaż mi się wydaję ze powino być na update bo nazwy kolumn o ile pamietam to config_name oraz config_value
Kod
UPDATE `phpbb_config` SET `config_value` = 'wartość' WHERE `config_name` = 'zakonczone_konkursy'


Przecież podałem to, nie czytacie postów do końca.
sada
Ważne czy tylko dwie kolumny i czy któraś jest PRIMARY KEY
mlawnik
Forum przemo byłoby lepszym miejscem na pytania.
wujek2009
Tabela phpbb_config ma dwie kolumny (config_name/config_value) a błąd nam mówi, że administrator już dodał wpis "trwajace_konkursy" do tabeli phpbb_config, stąd błąd o zdublowaniu wpisu.

Stąd po prostu wyczyść cache (ręcznie bądź przez panel admina) i ustawienia na nowo się wczytają (w tym ustawienie "trawjace_konkursy") i powinno być OK.
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.