Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sterownik do mysql, problem...
shpyo
post 6.12.2005, 10:47:30
Post #1





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

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


Od jakiegoś cazsu korzystam z mojego sterownika do bazy danych mysql. Nie jest on może idealny, i jak narazie spełnia moje oczewikawania.
Z projektu na projekt okazuje się, że w pewnych momentach nie działa to tak jak bym sobie tego życzył.
KOD:
  1. <?php
  2. class mysql
  3. {
  4.  
  5.  function error( $error, $query ) {
  6. echo '<b>mySQL error:</b> '.$error.'. <br />zapytanie: '.$query;
  7. die();
  8.  }
  9.  
  10.  function zapytanie ( $query ) {
  11. $resultDB = @mysql_query( $query ) or $this->error( mysql_error(), $query );
  12.  
  13. $arrDane = array();
  14. while( $rowDB = @mysql_fetch_array( $resultDB, MYSQL_ASSOC ) ) {
  15.  array_push( $arrDane, $rowDB );
  16. }
  17.  
  18. return $arrDane;
  19.  }
  20.  
  21.  function dodaj( $co, $gdzie ) {
  22. $pola = '';
  23. $kolumny = '';
  24. $licznik = 0;
  25. $ilePol = count($co);
  26.  
  27. foreach( $co as $klucz => $index ) {
  28.  $licznik++;
  29.  if( $licznik == $ilePol ) {
  30. $kolumny .= $klucz;
  31. $pola .= "'".$index."'";
  32.  } else {
  33. $kolumny .= $klucz.", ";
  34. $pola .= "'".$index."', ";
  35.  }
  36. }
  37.  
  38. $query = "INSERT INTO ".$gdzie." (".$kolumny.") VALUES(".$pola.")";
  39. $this->zapytanie($query);
  40.  }
  41.  
  42.  function edycja( $co, $tabela, $gdzie ) {
  43. $pola = '';
  44. $licznik = 0;
  45. $ilePol = count($co);
  46.  
  47. foreach( $gdzie as $klucz => $index ) {
  48.  $warunek = $klucz.' = '.$index;
  49. }
  50.  
  51. foreach( $co as $klucz => $index ) {
  52.  $licznik++;
  53.  if( $licznik == $ilePol )
  54. $pola .= $klucz." = '".$index."'";
  55.  else
  56. $pola .= $klucz." = '".$index."', ";
  57. }
  58.  
  59. $query = "UPDATE ".$tabela." SET ".$pola." WHERE ".$warunek;
  60. $this->zapytanie($query);
  61.  }
  62.  
  63.  function usun( $co, $gdzie ) {
  64. foreach( $co as $klucz => $index ) {
  65.  $warunek = $klucz.' = '.$index;
  66. }
  67.  
  68. $query = " DELETE FROM ".$gdzie." WHERE ".$warunek;
  69. $this->zapytanie($query);
  70.  }
  71.  
  72. }
  73. ?>

Problem leży w metodzie do edycji danych. Czasami jest tak, że chcę edytować dane poprzez zwiększenia jednego pola o jakąś liczbę - czyli:
  1. UPDATE tabela SET punkty=punkty+5 WHERE id=666

Czyli u mnie powinno być tak:
  1. <?php
  2. $arr = array();
  3. $arr['punkty'] = 'punkty+5';
  4. ?>

Niestety wywala parse error :/
Podobnie jest z metodą usun gdy jakaś tabela nie ma pola autoincrement.
Czy ma ktoś jakiś pomysł aby rozwiązać mój problem bez dodadatkowych warunków w metodach?


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.12.2005, 10:52:24
Post #2





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




  1. <?php
  2. $pola .= $klucz." = '".$index."'";
  3. ?>

Niezaleznie od typu pola bierzerz go w ciapki. Błąd exclamation.gif!. W rezultacie otrzymasz
  1. ....punkty='punkty + 5'...
źle


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

"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
shpyo
post 6.12.2005, 10:54:05
Post #3





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

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


@nospor: Ciapki muszą być, gdy nową wartością pola jest string


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.12.2005, 11:13:12
Post #4





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




od kiedy punkty to string? przeciez sam zwiekszasz je o 5 czyli jest to liczba. Nie moze tam byc ciapkow. Przy innych polach tekstowych ciapki musza byc, ale przy liczbach nie, tym bardziej ze podajesz nazwe pola. a w ciapkach jest ona traktowana jako napis a nie jako pole


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

"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: 19.07.2025 - 20:37