Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]problem z dodawaniem tekstu do bazy mysql
Forum PHP.pl > Forum > Przedszkole
moree
Witam mam taki problem
skrypt nie chce mi dodać do bazy danych całej zawartości
textarea urywa praktycznie cały tekst jesli dodam tekst wiecej niz 300 znaków urywa jak dodam mniej ze 20 znaków jest cały. I Jęśli brakuje polskich znaków doda cały eh .


moje zapytanie do mysql

  1. $zapytajsie= "INSERT INTO tabela SET temacik='".$_POST['temat']."', zawartosc='".$_POST['tresc']."', dzial='".$_POST['sheg']."'";
  2. $wyk= mysql_query($zapytajsie) OR die(mysql_error());
  3.  


Co to może być mecze się i nie wiem eh .
sadistic_son
Sprawdź typy pól w bazie. Dla dłuższych treści ustaw typ pola na text.
moree
mam to ustawione to nie to.
_Borys_
  1. $temat=$_POST['temat'];
  2. $tresc=$_POST['tresc'];
  3. $sheg=$_POST['sheg'];
  4. $zapytajsie= "INSERT INTO tabela (temacik,zawartosc,dzial) VALUES ('$temat','$tresc','$sheg')";
  5. mysql_query($zapytajsie) OR die(mysql_error());
Prezi2907
Cytat(sadistic_son @ 15.02.2011, 23:05:38 ) *
Sprawdź typy pól w bazie. Dla dłuższych treści ustaw typ pola na text.


I ustaw odpowiednio długi ciąg...

dodatkowo wyciągając tekst z pola typu <textarea> używaj funkcji nl2br()...

Pokaż screen z strukturą bazy w MySQL jeśli masz nadal problemy...


Ja insert robie w takiej formie...
  1.  
  2. $insert = "INSERT INTO tabela values(NULL, '".$temat."', '".$treść."' , '".$sheg."')"; //NULL = bo tam masz wartość ID którą winneś mieć ustawioną na Auto_increment...


Jeszcze nigdy mi nie wywaliło błędów...

A i pokaż formularz to od razu zaradzimy smile.gif
nekomata
Bo podajesz pola od lewej, a jak chce sobie kolejność zmienić albo pola ominąć to sobie wymienia kolejność wcześniej dla nazw kolumn.
Prezi2907
Cytat(nekomata @ 15.02.2011, 23:18:08 ) *
Bo podajesz pola od lewej, a jak chce sobie kolejność zmienić albo pola ominąć to sobie wymienia kolejność wcześniej dla nazw kolumn.

BEŁKOT....
Wyrażaj się po ludzku... Co ma piernik do wiatraka. Tak czy inaczej nie ładuje mu tylko tej jednej wartości, więc ? Chyba leży problem gdzieś w zmiennych lub w samym formularzu. Ostatecznie baza danych i nie odpowiednia struktura....
melkorm
Rodzi się nam dobra baza wróżek smile.gif

1. Struktura bazy.
2. Kod formularza.
3. Cały skrypt (lub część odpowiedzialna za pobranie danych i ich wstawienie)

Bez tych rzeczy możemy dalej tylko wróżyć.
Prezi2907
Cytat(melkorm @ 15.02.2011, 23:27:22 ) *
Rodzi się nam dobra baza wróżek smile.gif

1. Struktura bazy.
2. Kod formularza.
3. Cały skrypt (lub część odpowiedzialna za pobranie danych i ich wstawienie)

Bez tych rzeczy możemy dalej tylko wróżyć.


Nom jak na razie kolega dał tylko inserta ... Pomogliśmy, nic nie pisze to pewnie działa smile.gif Hehe...
sadistic_son
Bo zapytanie jest źle skonstruowane, jak zauważył Borys.
Powinno być:
INSERT INTO tabela VALUES ($id , '$jakis_string' , 'itp', 'itd' )
a jest
INSERT INTO tabela SET

WTF ?
sada
jeśli z textarea to prawie napewno występują tam znaki "trudne" np apostrof, dodaj przed wrzuceniem do bazy:
adslashes($zmienna)
sadistic_son
A na cholerę to addslashes? Zamiast tego lepiej użyć, strip_tags i mysql_real_escape_string.
Prezi2907
Cytat(sadistic_son @ 16.02.2011, 00:27:02 ) *
A na cholerę to addslashes? Zamiast tego lepiej użyć, strip_tags i mysql_real_escape_string.

Popieram... Spotkałem się z serwerem gdzie miał źle skonfigurowany addslashes i w końcu zamiast chronić mi stronę i formularze to je całkowicie ogolociły z zabezpieczeń... smile.gif mysql_real_escape_string w zupełności zamienia stringi oraz wszelkie znaki specjalne na bezpieczne dla bazy danych znaki które nie sa wykonywalne np. jako komentarze oraz zamknięcia nawiasów lub nawet funkcji... smile.gif

Cytat(sadistic_son @ 16.02.2011, 00:13:41 ) *
Bo zapytanie jest źle skonstruowane, jak zauważył Borys.
Powinno być:
INSERT INTO tabela VALUES ($id , '$jakis_string' , 'itp', 'itd' )
a jest
INSERT INTO tabela SET

WTF ?

Sprawdź sobie w Manualach jaką formą wypisywać dane w VALUE a jak je podawać przy stosowaniu SET...
Zależność jest prosta a każdy stosuje tą która dla niego wygodniejsza... smile.gif

Podawać $id? Kto Cię uczył pisać... Jeśli masz auto icrement to wysyłasz pustą wartość a nie coś tam... Inaczej wywala błędy... W bazie zawsze stosuje się IDcostam jako primery + auto_increment aby mieć odnośniki i posługiwać się samymi IDkami (w końcu relacyjność baz danych to ich główna zaleta choć Mysql w porównaniu do PostgreSQL się chowa w tym kierunku smile.gif )

Nic dziwnego że pięćdziesiąt osób będzie się wypowiadać jak jeden wprowadza motłoch...
sadistic_son
Cytat(Prezi2907 @ 16.02.2011, 02:01:51 ) *
(...)każdy stosuje tą która dla niego wygodniejsza... smile.gif
Dobra, przyznaję, o tym nie wiedziałem, że można INSERT INTO zastosować z SET.

Cytat(Prezi2907 @ 16.02.2011, 02:01:51 ) *
Podawać $id? Kto Cię uczył pisać...
Nie bądź taki mądry cwaniaczku. Błąd/niedopatrzenie Ci się nigdy nie wkradło do kodu/posta?

Cytat(Prezi2907 @ 16.02.2011, 02:01:51 ) *
Jeśli masz auto icrement to wysyłasz pustą wartość a nie coś tam... Inaczej wywala błędy... W bazie zawsze stosuje się IDcostam jako primery + auto_increment aby mieć odnośniki i posługiwać się samymi IDkami (w końcu relacyjność baz danych to ich główna zaleta choć Mysql w porównaniu do PostgreSQL się chowa w tym kierunku smile.gif )
Daruj sobie tłumaczenie podstaw tylko przeczytaj sobie jeszcze raz moje powyższe zdanie, to po poprzednim cytacie.

Cytat(Prezi2907 @ 16.02.2011, 02:01:51 ) *
Nic dziwnego że pięćdziesiąt osób będzie się wypowiadać
Póki co sam jesteś wśród tych 50-ciu osób i rozwiązania nie znalazłeś.

Cytat(Prezi2907 @ 16.02.2011, 02:01:51 ) *
(..)jak jeden wprowadza motłoch...
Pomyliłeś chyba słowo "motłoch" z "chaos" , co?

Pozdrawiam.
Prezi2907
Cytat(sadistic_son @ 16.02.2011, 02:39:24 ) *
Dobra, przyznaję, o tym nie wiedziałem, że można INSERT INTO zastosować z SET.

Nie bądź taki mądry cwaniaczku. Błąd/niedopatrzenie Ci się nigdy nie wkradło do kodu/posta?

Daruj sobie tłumaczenie podstaw tylko przeczytaj sobie jeszcze raz moje powyższe zdanie, to po poprzednim cytacie.

Póki co sam jesteś wśród tych 50-ciu osób i rozwiązania nie znalazłeś.

Pomyliłeś chyba słowo "motłoch" z "chaos" , co?

Pozdrawiam.


Skończ bo sam się poniżasz... Dajesz komuś podpowiedź to go w błąd nie wprowadzaj bo będzie za chwile 50 pytań z odpowiedziami czemu mi nie działa i czemu tam ma być to $id i skąd pobrać... Po drugie tłumacze bo widzę że nie łapiesz o co biega więc grzecznie tłumacze a że się unosisz dumą to nie moja sprawa... Skąd wiesz czy nie działa ? Kolega nie napisał nic więcej odnośnie problemu... Napisałem mu inserta in jakoś nie widzę by skarżył się dalej na błąd... Proszę nie udawaj kogoś kim nie jesteś z swoją wiedzą...

Pozdrawiam i za razem żegnam bo nie chce od administracji dostać jakiegoś ostrzeżenia z powodu "takich" jak Ty...

Dobranoc....
moree
Problem rozwiązany polegał na złym kodowaniu
zamiast
  1. mysql_query ("SET CHARSET utf8");

wstawiłem
  1. mysql_query ("SET CHARSET latin2");


Wszystko smiga smile.gif

A co do zabezpieczanie to wole jakoś strip_tags
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.