Praca Programisty
- Szczegóły
- Kategoria: Praca Programista
- Opublikowano: piątek, 11, październik 2013 16:35
- Super User
- Odsłony: 74236
Praca Programisty Server
Starając się o pracę programisty PHP, MYSQL schodziłem kilka firm. Poziom był różny od pytań podstawowych do bardziej zawansowanych.
W jednej pytano o tablicę asocjacyjną, o sortowanie, tabele mysql o klasy i oop.
Dostałem też parę zadań do wykonania. Jedne z nich dla mnie najbardziej skomplikowane chciałem wam przytoczyć.
W przyszłości ktoś może skorzysta na moich doświadczeniach,
i lepiej przygotuje się do rozmowy w sprawie pracy programisty. Powodzenia !.
Wracając do tematu czyli do zadania jakie dostałem. Było opisane na dwóch kartkach A4. Treść zadania do wglądu. Załącznik pod artykułem.
Zadanie wykonałem trochę w innej kolejności niż podane to było przez autora. Ponieważ wydało mi się, że w ten sposób będzie łatwiej.
I faktycznie tak było o czym przekonałem się na końcu pisania programu. Wszystko było tak jak sobie to w początkowej fazie zaplanowałem
z niczym praktycznie nie miałem problemów.
Jedyną rzeczą, nad którą przystanąłem, to wyszukiwanie po dacie.
Wydaje się proste, ale trzeba było się chwilę zastanowić, żeby nie było wtopy ! Problem polegał na tym, że nigdy nie wyszukiwałem w PDO w LIKE,
a chciałem przepuścić dane przez „bindValue()” więc chwile się zastanawiałem. Efekt mojej pracy przedstawiam poniżej,
można tam zobaczyć jak sobie z tym problemem poradziłem. Czy dobrze te zadanie wykonałem sami oceńcie.
Zapraszam do komentowania pod artykułem.
class_server.php
<?php /* * @version Komentarze zdalnie v1.0 * @autor Adam Berger$ * Copyright 2013 Komentarze zdalnie * ber34$o2.pl * Licensed under the Apache License v2.0 * <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a> * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
class class_server_komentarze{ /* */ protected $Api="1234"; private $nazwa_komentarz; private $nazwa_kategori;
/* Dodaj zdalnie nowy komentarz do kategori */ public function nowa_kategoria_komentarz($nazwa_kategori){ $c = curl_init(); curl_setopt($c, CURLOPT_URL, 'http://localhost/praca/lib/server_client_kategoria.php'); /* adres docelowy */ curl_setopt($c, CURLOPT_POST, 1);/* przesylamy metodą post */ /* Kodujemy klucz api md5 */ curl_setopt($c, CURLOPT_POSTFIELDS, 'nazwa_kategori='.$nazwa_kategori.'&id_key='.md5($this->Api)); /* dane do wyslania */ curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($c); if(curl_getinfo($c, CURLINFO_HTTP_CODE) === 200){ if(!empty($page)){ return $page; }else{ return false; } }else{ echo "blad_placzenia"; } curl_close($c); } /* Pobierz zdalnie komentarze kategorii */ public function pobierz_kategoria(){ $URL = "http://localhost/praca/lib/server_client_pobierz_kategorie.php"; /* adres docelowy */ $c = curl_init(); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_URL, $URL); $page = curl_exec($c); if(curl_getinfo($c, CURLINFO_HTTP_CODE) === 200){ if(!empty($page)){ return $page; }else{ return false; } }else{ echo "blad_placzenia"; } curl_close($c); } /* Dodaj zdalnie nowy komentarz do kategori */ public function dodaj_komentarz($nazwa_kategori, $nazwa_komentarz){ $this->nazwa_kategori = $nazwa_kategori; $this->nazwa_komentarz = $nazwa_komentarz; /*Sprawdzamy czy dane są przesłane */ if(!empty($this->nazwa_kategori) && !empty($this->nazwa_komentarz)){ $URL = "http://localhost/praca/lib/server_client_kategoria_komentarz.php"; $c = curl_init(); curl_setopt($c, CURLOPT_URL, $URL); /* adres docelowy */ curl_setopt($c, CURLOPT_POST, 1); /* przesylamy metodą post */ /* Kodujemy klucz api md5 */ curl_setopt($c, CURLOPT_POSTFIELDS, 'nazwa_kategori='.$this->nazwa_kategori.'&nazwa_komentarz='.$this->nazwa_komentarz.'&id_key='.md5($this->Api)); /* dane do wyslania */ curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($c); /* Sprawdzenie otrzymanej odpowiedzi*/ if(curl_getinfo($c, CURLINFO_HTTP_CODE) === 200){ if(!empty($page)){ return $page; }else{ return false; } }else{ echo "blad_placzenia"; } curl_close($c); }else{ return false; } }
} $komentarze = new class_server_komentarze;/* Wywołujemy klasę */ $nazwa_kategori = "Samochody"; /* Zakładamy ze taka istnieje */ $nazwa_komentarz = "BMW"; /* Pobieramy zdalnie wszystkie Kategorie */ $sprawdzenie = $komentarze->pobierz_kategoria(); if($sprawdzenie != false){ /* Dekodujemy dane otrzymane */ $rr = json_decode($sprawdzenie); foreach ($rr as $value) { if(!empty($value->kategoria)){ /* Wyświetlamy dane otrzymane */ echo $value->id_kategoria."- id ".$value->kategoria."- kategoria data -".$value->data_kategoria." "; }else{ /* Można dodać id w którym brak nazwy kategorii */ echo "Brak nazwy Kategori "; } } }elseif($sprawdzenie != "brak_kategori"){ echo "Brak kategori"; }else{ echo "Błąd Połączenia"; } /* Dodaj zdalnie nowy komentarz */ $sprawdzenie = $komentarze->dodaj_komentarz($nazwa_kategori, $nazwa_komentarz); if($sprawdzenie == "ok"){ echo $sprawdzenie; }elseif($sprawdzenie == "blad_k"){ echo "Błąd kategori"; }elseif($sprawdzenie == "blad_ko"){ echo "Błąd komentarza"; }elseif($sprawdzenie == "blad_api"){ echo "Błąd Api"; }elseif($sprawdzenie == "blad_zapytania"){ echo "Błąd Zapytania Bazy Danych "; }else{ echo "Błąd Połączenia"; } /* Dodaj zdalnie nowa kategorie */ $sprawdzenie = $komentarze->nowa_kategoria_komentarz($nazwa_kategori); if($sprawdzenie == "ok"){ echo $sprawdzenie; }elseif($sprawdzenie == "blad_k"){ echo "Błąd kategori"; }elseif($sprawdzenie == "blad_api"){ echo "Błąd Api"; }else{ echo "Błąd Połączenia"; }
Cały gotowy skrypt z tabelami mysql