Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak to skrócić ?
Kreton
post 1.04.2006, 21:18:25
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


  1. <?php
  2. if(isset($matematyka)) 
  3. {$zap3 = "UPDATE `klasa` SET `Matematyka` = '$matematyka' WHERE `id` = $id ";
  4. mysql_query($zap3);
  5. print " zmieniono matematyke,";}
  6. if(isset($historia)) 
  7. {$zap4 = "UPDATE `klasa` SET `Historia` = '$historia' WHERE `id` = $id ";
  8. mysql_query($zap4);
  9. print " zmieniono historie,";}
  10. if(isset($polski)) 
  11. {$zap5 = "UPDATE `klasa` SET `Polski` = '$polski' WHERE `id` = $id ";
  12. mysql_query($zap5);
  13. print " zmieniono j. polski,";}
  14. if(isset($angielski)) 
  15. {$zap6 = "UPDATE `klasa` SET `Angielski` = '$angielski' WHERE `id` = $id ";
  16. mysql_query($zap6);
  17. print " zmieniono j. angielski,";}
  18. if(isset($biologia)) 
  19. {$zap6 = "UPDATE `klasa` SET `Biologia` = '$biologia' WHERE `id` = $id ";
  20. mysql_query($zap6);
  21. print " zmieniono j. angielski,";}
  22. if(isset($chemia)) 
  23. {$zap6 = "UPDATE `klasa` SET `Chemia` = '$chemia' WHERE `id` = $id ";
  24. mysql_query($zap6);
  25. print " zmieniono j. angielski,";}
  26. ?>


Witam, chciałbym to jakoś skrócić, ilość przedmiotów będzie rozła wiec, tak zostać nie może, próbowałem z array() ale coś mi nie wychodzi, co o tym sądzicie ?

Ten post edytował Kreton 1.04.2006, 21:18:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Kuziu
post 1.04.2006, 22:09:40
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Tak na sam początek to możesz to wszystko wykonać w 1 zapytaniu

  1. <?php
  2. $zapytanie = "UPDATE `klasa` SET `Matematyka` = '$matematyka', `Historia` = '$historia', `Polski` = '$polski' WHERE `id` = $id";
  3. ?>


I tak dalej


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
Kreton
post 2.04.2006, 09:57:06
Post #3





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


no tak, ale czy przy np 15 przedmiotach nie bedzie to zbytnio obciązało bazy danych ?
Go to the top of the page
+Quote Post
nospor
post 2.04.2006, 10:05:46
Post #4





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




Wykonanie jednego zapytania jest zdecydowanie lepsze od wykonania 15 zapytan.

ps: na przyszlość postaraj się trochę bardziej z tytulem winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kreton
post 3.04.2006, 19:04:45
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


Nie stety takie rozwiązanie jest toszke bezsensowne, ponieważ jeżeli nie wpisałem wcześniej jakich kolwiek danych i nie przekazalem ich za pomocą zmiennych $_POST to takie zapytanie będzie mi wstawiało w odpowiednie kolumny puste znaki, wyczyści mi całkiem dotychczasowe rzeczy ...
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 19:34:30
Post #6





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




kuziu zaproponowal ci ogolną idee. ty kolejne pola w zapytaniu masz dodawac wowczas, gdy bedzie ono wypelnione smile.gif tak czy siak sprowadzi to sie do wykonanaia jednego zapytania wygenerowanego w zaleznosci od podanych pol


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Kreton
post 3.04.2006, 20:43:04
Post #7





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


i tu tkwi caly ten problem, bo pomyślałem dokłądnie tak jak ty rolleyes.gif Tylko ze jako początkujący programista nie mam zielonego pojęcia jak to zrobic smile.gif
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 21:20:52
Post #8





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




podobnie jak miales:

  1. <?php
  2.  
  3. $sets = array();
  4. if(isset($matematyka)) 
  5. $sets[]="`Matematyka` = '$matematyka'";
  6. if(isset($historia)) 
  7. $sets[]="`Historia` = '$historia'";
  8. //......  
  9.  
  10. if (!empty($sets)){
  11. $zap = 'UPDATE `klasa` SET '.implode(',',$sets);
  12. //i tu se je wykonaj
  13. }
  14. else 
  15.  echo 'Nic nie wybrano';
  16.  
  17. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Diwi
post 3.04.2006, 22:17:14
Post #9





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Pisane na szybko:

  1. <?php
  2.  
  3. $arrPrzedmioty = array('matematyka' => 'Zmieniono matematykę', 
  4. 'historia' => 'Zmieniono historię', 
  5. 'polski' => 'Zmieniono j.polski', 
  6. 'angielski' => 'Zmieniono j.angielski', 
  7. 'biologia' => 'Zmieniono biologię', 
  8. 'chemia' => 'Zmieniono chemię');
  9.  
  10. foreach( $arrPrzedmioty as $strNazwaPrzedmiotu => $strKomunikat ) {
  11. if( $$strNazwaPrzedmiotu ) {
  12.  $arrSetCode[] = '`'.$strNazwaPrzedmiotu.'` = ' '.$$strNazwaPrzedmiotu.' ';
  13.  
  14.  echo $strKomunikat;
  15. }
  16. }
  17.  
  18. if(is_array( $arrSetCode )) {
  19. $wykonajZapytanie = mysql_query('UPDATE `klasa` SET '.implode(',', $arrSetCode));
  20. }
  21. else {
  22.  echo 'Nic nie wybrano';
  23. }
  24.  
  25. ?>


Ten post edytował Diwi 3.04.2006, 22:18:24
Go to the top of the page
+Quote Post
Kreton
post 12.04.2006, 18:57:15
Post #10





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 20.02.2005

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


  1. <?php
  2.  
  3. $wykonajZapytanie = mysql_query('UPDATE `klasa` SET '.implode(',', $arrSetCode) .'WHERE `id` ='.print $id);
  4. ?>


Witam, skrypt wyzej przytoczony pprzez kolege oczywiście dziala, jednak nie ma tam mowy o tym ktorego ucznia nalezy podmienic. Wiec napisałem takie coś, jak wyżej. Problem w tym ze niechce mi wrzucac do bazy dancyh tego. Jezeli przypisze id na sztywno tzn
  1. WHERE `id` = 1
Owszem dziala bez problemu, jezeli chcesz poprzez print $id to juz nie dziala.
Go to the top of the page
+Quote Post
nospor
post 12.04.2006, 18:59:26
Post #11





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




Cytat
jezeli chcesz poprzez print $id to juz nie dziala
smile.gif
  1. <?php
  2. $wykonajZapytanie = mysql_query('UPDATE `klasa` SET '.implode(',', $arrSetCode) .' WHERE `id` ='.$id);
  3. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 18.07.2025 - 10:38