Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie rekordów z treści pola tekstowego...
seva
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.03.2004

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


w jaki sposob (chodzi o konkretny skrypt) utworzyć rekord zawierający zawartość pola tektowego wypełnionego w formularzu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
kubatron
post
Post #2





Grupa: Zarejestrowani
Postów: 581
Pomógł: 0
Dołączył: 21.07.2003
Skąd: Jasło

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


Myśle ze ci chodzi o to ze wpisujesz w polu tekstowym tresc ona jest dodawana do mysql i wyświetlana:
index.php
[php:1:ac1925834e]<?php
mysql_connect("localhost", "root", "cos") or die ("Błąd połączenia z bazą danych.");
mysql_select_db("baza");
echo "<form action=dodaj.php method=post>
<input type=hidden name=dodaj>
<input type=text name=cos>
<input type=submit value=dodaj>
</form>
";

?>[/php:1:ac1925834e]
dodaj.php
[php:1:ac1925834e]<?php
mysql_connect ("localhost", "root", "cos") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("baza") or
die ("Nie można połączyć się z baz&plusmn;");
if($pyt == 'dodaj') {
$pyt = "INSERT INTO news (cos) VALUES ('$cos');";
$wynik = mysql_query($pyt);
} else {
echo "Zapytanie zostało wykonane poprawnie wróć do panelu administracyjnego";
}
?>[/php:1:ac1925834e]
Pisane szybko więc może coś nie działac, pisz jakby nie działało.
Go to the top of the page
+Quote Post
seva
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.03.2004

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


zrobilem tak jak mowiles, ale w bazie i tak nie dodaje sie wpis, pomimo tego ze wychodzi komunikat ze dane zostaly wprowadzone do bazy...
Go to the top of the page
+Quote Post
arogancik
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Kraków

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


wystarczy utworzyć pole tekstowe w tabeli w mysql i do niego zapisać zmienną. cały problem moze polegać na tym, ze ci nie przekazuje wartości zmiennej i muszisz skorzystac $HTTP_POST_VARS[nazwapolatextarea]
a ten kod jest błedny.
Cytat
if($pyt == 'dodaj') {  
$pyt = "INSERT INTO news (cos) VALUES ('$cos');";  
$wynik = mysql_query($pyt);      
} else {  
echo "Zapytanie zostało wykonane poprawnie wróć do panelu administracyjnego";  
}  

przecież to nie ma sensu. sprowadza sie do tego ze jesli zmienn ma wartośc dodaj to zapisuje do bazy a jesli nie to pisze ze zapytanie zostało porawnie wykonane. no chyba ze ja coś przeoczyłem w kodzie.
według mnie cała sprawa rozbija sie o registerglobals i polecam skorzystanie z wyszukiwarki!!!
Go to the top of the page
+Quote Post
seva
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.03.2004

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


robie tak i nic mi to niedaje, prosilbym o podanie pelnego kodu jak ma to wygladac...
Go to the top of the page
+Quote Post
arogancik
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Kraków

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


formularz dodawania w czystym html

Kod
<form action=dodaj.php method=post>

<input type=text name=nazwa_pola>

<input type=submit value=dodaj>

</form>


dodaj.php
[php:1:2a5a19d35c]<?php
mysql_connect ("localhost", "konto", "hasło") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("nazwa_bazy_danych") or
die ("Nie można połączyć się z bazą;");
if(isset($HTTP_POST_VARS['nazwa_pola'])) {
$pyt = "INSERT INTO tabela ('nazwa_pola _w_tabeli_w_mysql) VALUES ('$HTTP_POST_VARS['nazwa_pola']');";
$wynik = mysql_query($pyt);
} else {
echo "nie podano tekstu";
}
?>[/php:1:2a5a19d35c]
wydaje mi sie ze ten kod jest dobry, ale niestety nie moge go sprawdzić bo mi serwer pdał ostatnio i nie postawił go od nowa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
skoczman
post
Post #7





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 31.01.2007

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


A w jaki sposób dodawać treść z pola tekstowego do bazy, tak aby każda linijka to był osobny rekord?
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Cytat(kubatron @ 8.03.2004, 11:23:47 ) *
Myśle ze ci chodzi o to ze wpisujesz w polu tekstowym tresc ona jest dodawana do mysql i wyświetlana:
index.php
[php:1:ac1925834e]<?php
mysql_connect("localhost", "root", "cos") or die ("Błąd połączenia z bazą danych.");
mysql_select_db("baza");
echo "<form action=dodaj.php method=post>
<input type=hidden name=dodaj>
<input type=text name=cos>
<input type=submit value=dodaj>
</form>
";

?>[/php:1:ac1925834e]
dodaj.php
[php:1:ac1925834e]<?php
mysql_connect ("localhost", "root", "cos") or
die ("Nie można połączyć się z MySQL");
mysql_select_db ("baza") or
die ("Nie można połączyć się z baz?");
if($pyt == 'dodaj') {
$pyt = "INSERT INTO news (cos) VALUES ('$cos');";
$wynik = mysql_query($pyt);
} else {
echo "Zapytanie zostało wykonane poprawnie wróć do panelu administracyjnego";
}
?>[/php:1:ac1925834e]
Pisane szybko więc może coś nie działac, pisz jakby nie działało.


Co to ma byc ? - jeśli nie doda rekordu, to wyświetli komunikat o poprawnym dodaniu ?

  1. <?php
  2.  
  3.  
  4. function zapytaj($sql) {
  5.  
  6. $db = mysql_connect($host, $user, $haslo);
  7. mysql_select_db($baza_danych, $db);
  8. $wynik = mysql_query($sql, $db);
  9. return $wynik;
  10. }
  11.  
  12. echo "<form method=post>
  13. <input type=hidden name=dodaj>
  14. <input type=text name=cos>
  15. <input type=submit value=dodaj>
  16. </form>
  17. ";
  18.  
  19.  
  20. $cos = $_POST['cos'];
  21. $wynik = zapytaj("INSERT INTO `tabela` SET `kolumna` = '$cos';");
  22.  
  23. ?>


Cytat(skoczman @ 1.07.2011, 10:27:40 ) *
A w jaki sposób dodawać treść z pola tekstowego do bazy, tak aby każda linijka to był osobny rekord?


Musisz zastosować <textarea>, a potem zamienić str_replace('\n', 'zapytaj("zapytanie;")');

i utworzyć zapytania w pętli

Ten post edytował toaspzoo 1.07.2011, 13:11:17
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Co to ma byc ? - jeśli nie doda rekordu, to wyświetli komunikat o poprawnym dodaniu ?
Spójrz na datę, później się bulwersuj...

Cytat
, a potem zamienić str_replace('\n', 'zapytaj("zapytanie;")');
OOoo, a to ciekawe. Poproszę o przykład, jestem bardzo ciekaw jak tego dokonasz (IMG:style_emoticons/default/smile.gif)
I jeszcze ta funkcja zapytaj(), która za każdym razem łączy się z bazą - i taką funkjcę ty chcesz wykonywać w pętli.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #10





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


uwierz mi, że można stosować tą funkcję w pętli.
Jutro się pobawię w przykłady.

My godness ! Nie przeczytałem dat !
Go to the top of the page
+Quote Post
mat-bi
post
Post #11





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Człowieku, masz 50 linijek. Utworzysz 50 jednoczesnych takich samych połączeń. Pomyślałeś?

Cytat
Musisz zastosować <textarea>, a potem zamienić str_replace('\n', 'zapytaj("zapytanie;")');


(IMG:style_emoticons/default/ohmy.gif) , jestem ciekawy, jak ty to zrobisz. Nie chodziło ci przypadkiem o explode?

Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
uwierz mi, że można stosować tą funkcję w pętli.
A czy ja napisałem że nie można? Z Gdyni do Gdańska też można jechać przez Kraków, ale czy to jest optymalne?
Tak samo Twoja funkcja jest totalnie nie optymalna a Ty ją chcesz wykonywać jeszcze w pętli - nieoptymalność do kwadratu. Łączenie z bazą należy wykonywać raz a nie milion razy.

Cytat
jestem ciekawy, jak ty to zrobisz. Nie chodziło ci przypadkiem o explode?
mati, nie podpowiadaj, ja też chętnie bym zobaczył wersję ze str_replace (IMG:style_emoticons/default/smile.gif)
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
toaspzoo
post
Post #13





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Cytat(mat-bi @ 2.07.2011, 12:38:43 ) *
Człowieku, masz 50 linijek. Utworzysz 50 jednoczesnych takich samych połączeń. Pomyślałeś?



(IMG:style_emoticons/default/ohmy.gif) , jestem ciekawy, jak ty to zrobisz. Nie chodziło ci przypadkiem o explode?


Nie chodziło o explode, każdą nową linię traktuje jako oddzielne zapytanie, potem w zapytaniu będzie separator ";", który będzie oddzielał zapytania na podstawie nowych linii
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




@toaspzoo
1) w php każde zapytanie wykonuje się oddzielnie przy pomocy mysql_query()
2) Nawet jakby punkt 1 nie był prawdziwy i można by było wykonać wiele zapytań jednym poleceniem, to nadal ty nie zrobisz tego przy pomocy str_replace

Podsumowując: trzeba tu użyc explode() przez co otrzymamy tablicę której każdy element to oddzielna linia. Majac taką tablicę można dopiero zacząć budować kolejne zapytania do bazy
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: 21.12.2025 - 00:26