Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Petla w if'ie
buliyo
post 2.09.2008, 21:53:54
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 9.01.2006

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


  1. <?php
  2. $uwagi=$_POST['uwagi'];
  3. if ($uwagi="")
  4. {
  5. $result = mysql_query("SELECT * FROM badania WHERE id = '$id' LIMIT 1") or die(mysql_error());
  6. $dane = mysql_fetch_array($result);
  7. $uwagi = $dane[uwagi];
  8. }
  9. else
  10. {
  11. foreach ($uwagi as $i)
  12. {$rodzaj.= $i.'<br />';
  13. };
  14. };
  15. ?>

Mam formularz ktory przesyla wartosci..
Chcialbym zrobic cos takiego ze jesli formularz przesle pusta zmiena uwagi to uwagi sa pobierane z pola uwagi w badaniach.. a jesli nie sa puste to wykonuje sie petla ktora dodaje znaczniki <br />
Jednak php wywala mi
Warning: Invalid argument supplied for foreach() in /var/elrad/edit_file.php on line 56
Jesli skasuje wszystko i zostawie
  1. <?php
  2. foreach ($uwagi as $i)
  3. {$rodzaj.= $i.'<br />';
  4. };
  5. ?>

To smiga.. ale w wypadku edycji rekordu i nie wybrania wartosci na liscie select obecna wartosc sie czysci.. chcialbym tego uniknac..
Go to the top of the page
+Quote Post
Berg
post 2.09.2008, 22:48:54
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Zakładam, że w $_POST['uwagi'] jest zapisany string z pola textarea. Jeśli tak to nie możesz podać stringu w foreach, używa się go jedynie dla tablic.
Po drugie masz błąd w pierwszym if'ie, warunek jest zawsze spełniony:
  1. <?php
  2.  
  3. if ($uwagi="") { // Masz tak
  4. }
  5.  
  6. if ($uwagi == "") { // A powinno być tak
  7. }
  8.  
  9. ?>
Go to the top of the page
+Quote Post
buliyo
post 2.09.2008, 23:04:37
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 9.01.2006

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


uwagi pobiera z select z mozliwoscia wielokrotnego wyboru..
jesli zastosuje sie do twojej uwagi to w przypadku nie zaznaczenia niczego nie zwraca bledu
ale nie pobiera tez spowrotem wartosci, ktora posiadal w bazie..

Ten post edytował buliyo 2.09.2008, 23:08:37
Go to the top of the page
+Quote Post
Berg
post 2.09.2008, 23:20:05
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Sprawdź czy poprawnie masz skonstruowane zapytanie do bazy danych, sprawdź też jaki wynik otrzymujesz po zastosowaniu mysql_fetch_array (np. za pomocą var_dump).
Go to the top of the page
+Quote Post
buliyo
post 2.09.2008, 23:32:19
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 9.01.2006

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


zebym wiedzial jeszcze jak sad.gif
Go to the top of the page
+Quote Post
nexis
post 2.09.2008, 23:37:34
Post #6





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Na moje oko powinno to wyglądać tak:

  1. <?php
  2.  
  3. if (!isset($_POST['uwagi']) || empty($_POST['uwagi'])) {
  4.  if (!isset($_POST['id'])) exit('Brak parametru "id"!');
  5.  $query = "SELECT `uwagi` FROM `badania` WHERE `id` = '" . $_POST['id'] . "'";
  6.  $query = mysql_query($query) or exit(mysql_error());
  7.  $result = mysql_fetch_array($query);
  8.  $uwagi = $result['uwagi'];
  9. } else {
  10.  $uwagi = nl2br($_POST['uwagi']);
  11. }
  12.  
  13. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:44