Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Rozdzielone wyniki (tablica) do bazy
Poker
post
Post #1





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Witam serdecznie

Mam taki problem: tworzę możliwość dodawania tagów, taki rozdzielam przecinkiem "," i następnie chce dodać je do bazy danych. Robię w to w taki oto sposób

  1. <form method="POST" action="">
  2. <textarea name="tagi"></textarea>
  3. <input type="submit" name="dodaj">
  4. </form>


  1. <?php
  2. if(isset($_POST['dodaj'])) {
  3. $tagi=htmlspecialchars($_POST['tagi']);
  4.  
  5. while($rozdziel=explode(",", $tagi)) {
  6. mysql_query("INSERT INTO tagi VALUES('$rozdziel')");
  7. }
  8. }
  9.  
  10. ?>




Pisane teraz z głowy, ale ogólnie chodzi o to że skrypt się blokuje, już od rana siedzę i mam pustkę w głowie z tym błahym problemem.

Pomocy.
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




odrobinka pomyslunku....
explode() masz zrobic poza petlą a nastepnie wynik obrobic FOREACH
Go to the top of the page
+Quote Post
zend
post
Post #3





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Whilte też może być oile umiesz korzystać z current i next
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




zend co nie zmienia faktu, ze explode() ma być przed WHILe a nie w warunku WHILE.
Co rownież nie zmienia faktu ze do przelecenia tablicy lepsze jest foreach i nie ma co 4 liter dla WHILE zawracac (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
zend
post
Post #5





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Cytat
zend co nie zmienia faktu, ze explode() ma być przed WHILe a nie w warunku WHILE.
A czy ja zaprzeczyłem? (IMG:style_emoticons/default/smile.gif)
Cytat
Co rownież nie zmienia faktu ze do przelecenia tablicy lepsze jest foreach i nie ma co 4 liter dla WHILE zawracac winksmiley.jpg
Możesz jaśniej?

Wersje z while i foreach
  1. $tags = explode(',' , $_POST['tagi']);
  2. while($tag = current($tags))
  3. {
  4. next($tags);
  5. }
  6.  
  7. foreach(explode(',' , $_POST['tagi']) as $value)
  8. {
  9. }


A tak na marginesie, to na Twoim miejscu w darował bym sobie dodawanie danych do bazy w pętli, lepiej wykonać to wszystko jednym zapytaniem

Ten post edytował zend 24.06.2010, 13:32:44
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




Cytat
Możesz jaśniej?
A co tu pisac jasniej? Kod co sam napisales i nam tu przedstawiles mówi wystarczająco dużo (IMG:style_emoticons/default/smile.gif)

oczywiscie mozna przeleciec tablicę while ale bardziej do tego nadaje się foreach. Tak samo mozna zabic muchę łapą, ale lepiej uzyc muchołapki (IMG:style_emoticons/default/winksmiley.jpg)
mozna gwoździa wbic duzym kluczem francuskim, ale skoro mamy pod ręką młotek to uzyjmy młotka (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zend
post
Post #7





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


(IMG:style_emoticons/default/thumbsupsmileyanim.gif) ale chciałem pokazać też alternatywe do pamięciożernego foreach'a (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




Cytat
pamięciożernego foreach'a
O, to mnie teraz zaciekawiłeś. Na czym polega ta pamięciożernosc w porównaniu do while? Proszę omówic na przykladzie co tu sam napisales. (IMG:style_emoticons/default/smile.gif)
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: 26.09.2025 - 15:11