Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie rekordów z treści pola tekstowego...
Forum PHP.pl > Forum > Przedszkole
seva
w jaki sposob (chodzi o konkretny skrypt) utworzyć rekord zawierający zawartość pola tektowego wypełnionego w formularzu questionmark.gif
kubatron
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.
seva
zrobilem tak jak mowiles, ale w bazie i tak nie dodaje sie wpis, pomimo tego ze wychodzi komunikat ze dane zostaly wprowadzone do bazy...
arogancik
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!!!
seva
robie tak i nic mi to niedaje, prosilbym o podanie pelnego kodu jak ma to wygladac...
arogancik
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 sad.gif
skoczman
A w jaki sposób dodawać treść z pola tekstowego do bazy, tak aby każda linijka to był osobny rekord?
toaspzoo
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
nospor
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 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.
toaspzoo
uwierz mi, że można stosować tą funkcję w pętli.
Jutro się pobawię w przykłady.

My godness ! Nie przeczytałem dat !
mat-bi
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;")');


ohmy.gif, jestem ciekawy, jak ty to zrobisz. Nie chodziło ci przypadkiem o explode?

nospor
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 smile.gif
toaspzoo
Cytat(mat-bi @ 2.07.2011, 12:38:43 ) *
Człowieku, masz 50 linijek. Utworzysz 50 jednoczesnych takich samych połączeń. Pomyślałeś?



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