Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Python+baza mysql
blandzi
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.12.2008

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


Zaczne od tego ze posiada baze mysql z dwoma tabelami uczniowie i frekwenca_dzien. Napisalem skrypt ktory pobiera klucz z czytnika rfid a nastepnie ma sprawdzic czy taki klucz istnieje w tabeli uczniowie pod nazwa "uczen_id". Jezeli klucz taki istnieje skrypt ma wkleic to tabeli frekwencja_uczen wlasnie ten klucz i aktualna godzine w przeciwnym przypadku wypisac informacje ze nie ma takiego klucza. Prosze o sprawdzenie poprawnosci napisanego skryptu. Chodzi mi glownie czy dobrze wykorzystalem komendy, laczylem sie z baza itp. A co do "$klucz" szukam w jaki sposob jest to pobierane z czytnika wiec prosze sie tym w ogole nie przejmowac. Zapomniałbym skrypt pisany w pythonie z wykorzystaniem biblioteki mysql.

  1. import MySQLdb
  2. $conn = Mysqldb.connect("localhost", "user", "haslo") OR die ('Nie moge połączyć się z Mysql');
  3. mysql_select_db (uczniowie) OR die ('Nie moge wybrać tabeli');
  4.  
  5. $klucz = "pobierany z czytnika rfid";
  6.  
  7. # Sprawdzanie czy istnieje $klucz=uczen_id w bazie
  8. $w = mysql_fetch_array(mysql_query(SELECT COUNT(uczen_id) FROM uczniowie WHERE uczen_id == '$klucz'));
  9.  
  10. # jeżeli nie -> napis, jeżeli jest -> dodaje uczen_id i obecny czas do tabeli frekwencja_dzien
  11. IF ($w[0]{
  12. INSERT INTO `frekwencja_dzien` (uczen_id, czas) VALUES ('$klucz',CURTIME());
  13. } else {
  14.  
  15. print "Nie ma takiego ucznia"
  16. }
  17.  
  18.  
  19.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ogólnie wygląda na dobre, (ale tylko algorytm, a nie kod - uwagi niżej dałem) tylko nie jest potrzebne aż takie rozbudowane funkcjami sprawdzanie (IMG:style_emoticons/default/winksmiley.jpg) Wystarczy samo
  1. $w = mysql_query('SELECT uczen_id FROM uczniowie WHERE uczen_id == \''.$klucz.'\'')
A to dlatego, że jeśli istnieje choć jeden taki uczeń to zwróci tu pewne wartości, jeśli zaś nie to FALSE. I tylko to wystarczy sprawdzać. Nas nie interesuje czy jest konkretna wartość tam, lub ilu takich jest. Ważne jest tylko istnienie, czyli wartość typu bool. A to już nam samo mysql_query zwróci :)No i zwróc uwagę na nawiasy, apostrofy i funkcje, bo o nich zupełnie zapomniałeś (IMG:style_emoticons/default/winksmiley.jpg) Popatrz, że masz choćby insert do bazy... ale to tylko jakiś text. Nie ma bowiem mysql_query (IMG:style_emoticons/default/winksmiley.jpg)
Ostatecznie masz więc:
  1. import MySQLdb
  2. $conn = Mysqldb.connect("localhost", "user", "haslo") or die ('Nie moge połączyć się z Mysql');
  3. mysql_select_db (uczniowie) or die ('Nie moge wybrać tabeli');
  4.  
  5. $klucz = "pobierany z czytnika rfid";
  6.  
  7. $w = mysql_query('SELECT uczen_id FROM uczniowie WHERE uczen_id == \''.$klucz.'\'');
  8. if( $w ) {
  9. mysql_query( 'INSERT INTO frekwencja_dzien (uczen_id, czas) values ( \''.$klucz.'\', CURTIME() )');
  10. } else {
  11. echo 'Nie ma takiego ucznia';
  12. }


Ten post edytował thek 18.09.2009, 14:27:39
Go to the top of the page
+Quote Post
blandzi
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.12.2008

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


dzieki wszystko jasne temat do zamkniecia
Go to the top of the page
+Quote Post
Riklaunim
post
Post #4





Grupa: Zarejestrowani
Postów: 640
Pomógł: 44
Dołączył: 8.02.2004

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


Cytat
  1. import MySQLdb
  2. $conn = Mysqldb.connect("localhost", "user", "haslo") or die ('Nie moge połączyć się z Mysql');
  3. mysql_select_db (uczniowie) or die ('Nie moge wybrać tabeli');
  4.  
  5. $klucz = "pobierany z czytnika rfid";
  6.  
  7. $w = mysql_query('SELECT uczen_id FROM uczniowie WHERE uczen_id == \''.$klucz.'\'');
  8. if( $w ) {
  9. mysql_query( 'INSERT INTO frekwencja_dzien (uczen_id, czas) values ( \''.$klucz.'\', CURTIME() )');
  10. } else {
  11. echo 'Nie ma takiego ucznia';
  12. }


To nie jest kod Pythona, a raczej jakiś PHP - $, nawiasy klamrowe, mysql_query itd. To nie ma prawa działać ani w PHP ani w Pythonie (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 2.10.2025 - 07:46