Z projektu na projekt okazuje się, że w pewnych momentach nie działa to tak jak bym sobie tego życzył.
KOD:
<?php class mysql { function error( $error, $query ) { } function zapytanie ( $query ) { } return $arrDane; } function dodaj( $co, $gdzie ) { $pola = ''; $kolumny = ''; $licznik = 0; foreach( $co as $klucz => $index ) { $licznik++; if( $licznik == $ilePol ) { $kolumny .= $klucz; $pola .= "'".$index."'"; } else { $kolumny .= $klucz.", "; $pola .= "'".$index."', "; } } $query = "INSERT INTO ".$gdzie." (".$kolumny.") VALUES(".$pola.")"; $this->zapytanie($query); } function edycja( $co, $tabela, $gdzie ) { $pola = ''; $licznik = 0; foreach( $gdzie as $klucz => $index ) { $warunek = $klucz.' = '.$index; } foreach( $co as $klucz => $index ) { $licznik++; if( $licznik == $ilePol ) $pola .= $klucz." = '".$index."'"; else $pola .= $klucz." = '".$index."', "; } $query = "UPDATE ".$tabela." SET ".$pola." WHERE ".$warunek; $this->zapytanie($query); } function usun( $co, $gdzie ) { foreach( $co as $klucz => $index ) { $warunek = $klucz.' = '.$index; } $query = " DELETE FROM ".$gdzie." WHERE ".$warunek; $this->zapytanie($query); } } ?>
Problem leży w metodzie do edycji danych. Czasami jest tak, że chcę edytować dane poprzez zwiększenia jednego pola o jakąś liczbę - czyli:
UPDATE tabela SET punkty=punkty+5 WHERE id=666
Czyli u mnie powinno być tak:
<?php $arr['punkty'] = 'punkty+5'; ?>
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?