Zobacz temat
Głosowanie użytkowników na cokolwiek
|
|
jajaja |
Dodany dnia 31.10.2010 18:51:26
|
Przedszkolak Postów: 73 Ostrzeżeń: 2 v7.02.05 Data rejestracji: 10.01.2005 12:43 |
Witam. Siedzę od kilku dni i przeglądam posty związane z różnego rodzaju głosowaniami. Staram się stworzyć wtyczkę na głosowanie na cokolwiek. Dokładnie sprawa wygląda tak: 1. Chodzi o głosowanie. 2. Głosować mogą tylko użytkownicy. 3. Jeden użytkownik może głosować tylko raz na tę samą rzecz, ale może glosować ponownie na inną. 4. Będzie wyświetlany w panelu lub na osobnej stronie wynik. Dla dokładniejszego przedstawienia podaje poniższy przykład. Głosowanie na imiona. Użytkownik wchodzi na stronę gdzie ma prosty formularz składający się z jednego okienka. Tam wpisuje imię na które głosuje. W bazie danych pojawia się informacja, że na imię np. Marcin został oddany głos przez usera aaa. Ten sam user jak chciałby zagłosować jeszcze raz na to imię to miałby informację że już oddał takowy głos. Ale gdyby wpisał kolejne imię np. Adam, to jego głos byłby zapisany. Teraz kolejny user wpisuje imię Marcin. I ten głos jest zapisany. Lub może wpisać kolejne imię np. Krzyś i to będzie dodane do bazy. Mam nadzieje że sposób głosowania wyjaśniłem w miarę dokładnie. Teraz jak to miało by się wyświetlać. Szło by zapytanie do bazy o unikalny wpis, np. Marcin, Krzyś, Adam itp Po znalezieniu takowego wpisu, np. Marcin, przeszukiwałby bazę w celu ile razy było na takowy wpis głosowanie. (system miałby NIE rozróżniać wielkości znaków; Marcin czy marcin czy MArCIn to miało by być to samo) Po zliczeniu ilości dla imienia Marcin, poszukiwałby kolejnego unikanego wpisu (imienia) i tak samo by to zliczał. Na samym końcu segregowałby te imiona wg ilości oddanych głosów. Mam nadzieje ze nie jest to zbyt pogmatwane. A może macie inną propozycję (sugestię) jak takowe głosowanie przeprowadzić. Pozdrawiam |
|
|
Wścibski Gość |
Dodany dnia 25.11.2024 16:12:23
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
kefirek |
Dodany dnia 31.10.2010 21:42:29
|
Zaawansowany Postów: 1191 Pomógł: 418 Ostrzeżeń: 1 v6.00.xxx Data rejestracji: 06.04.2008 21:59 |
Robisz sobie tabele w bazie danych np. takie cos vote_name|user_id Marcin | 1 Krzys | 2 Krzys | 3 Tomek | 3 Tomek | 5 jajaja napisał/a: 3. Jeden użytkownik może głosować tylko raz na tę samą rzecz, ale może glosować ponownie Przed dodaniem do bazy sprawdzasz zapytaniem czy istnieje w bazie takie imię które podał user w formularzu oraz id usera które chce je dodać. Jak rekord istnieje nie dodajesz jak nie istniej dodajesz nowy rekord. jajaja napisał/a: (system miałby NIE rozróżniać wielkości znaków; Marcin czy marcin czy MArCIn to miało by być to samo) Przed dodaniem do bazy dobrze by było dać strtolower($_POST['vote_name']) By wartości w bazie z były z małych liter jajaja napisał/a: Po zliczeniu ilości dla imienia Marcin, poszukiwałby kolejnego unikanego wpisu (imienia) i tak samo by to zliczał. Na samym końcu segregowałby te imiona wg ilości oddanych głosów. BY wyświetlić wynik dajesz zapytanie I masz imiona i ilość głosów. Edytowane przez kefirek dnia 31.10.2010 21:44:39 |
|
|
jajaja |
Dodany dnia 09.11.2010 22:24:41
|
Przedszkolak Postów: 73 Ostrzeżeń: 2 v7.02.05 Data rejestracji: 10.01.2005 12:43 |
Ok, to teraz sytuacja wygląda tak: Tak wygląda moja baza: A tak wygląda plik wstawiania do bazy: No i prawie wszytko jest OK, bo dane wpisywane są do bazy danych, ale wywala mi błąd To są moje początki z sqlem i może robię jakiś głupi błąd. Będę chciał aby ograniczyć wpisywanie w pole "callsign" tylko liter cyfr i znaku "/", no i żeby były później one wyświetlane wielkimi literami. Dla tych co chcą przetestować to: www.pdxa.one.pl hasło/login test/test1234 Edytowane przez jajaja dnia 09.11.2010 22:27:11 |
|
|
jajaja |
Dodany dnia 16.11.2010 22:33:18
|
Przedszkolak Postów: 73 Ostrzeżeń: 2 v7.02.05 Data rejestracji: 10.01.2005 12:43 |
@Rafik89 dziękuje za info. Teraz kod wygląda tak: I następuje kolejne pytanie. Jak wpiszę wszytkie dane to do bazy wchodzi to ok. Jak nie wpiszę jakieś opcji to wywala mi: Znalazłem taką opcję: Ale ona tylko wyświetla informacje że jest błąd. A jak zrobić aby musiałbyć poprawni wypisany formulaż a dopiero po tym pójdzie to do bazy. Będe miał jeszcze pytanie jak zrobić warunek aby osoba która juz dodła swoj głos nie mogła tego zrobić ponownie, ale to poźniej. |
|
|
Gismo_PL |
Dodany dnia 17.11.2010 18:54:06
|
Bywalec Postów: 462 Pomógł: 40 Ostrzeżeń: 2 v7.01.05 Data rejestracji: 25.02.2007 21:13 |
@jajaja - a próbowałeś sprawdzić jak to jest rozwiązane w PHP-Fusion np. w przypadku rejestracji użytkownika i konieczności wypełnienia wymaganych pól?
Edytowane przez Pieka dnia 17.11.2010 19:16:38 |
|
|
jajaja |
Dodany dnia 17.11.2010 21:59:25
|
Przedszkolak Postów: 73 Ostrzeżeń: 2 v7.02.05 Data rejestracji: 10.01.2005 12:43 |
@Gismo_PL dziękuję za podpowiedź. Teraz kod wygląda tak: Teraz proszę o podpowiedź, jak zrobić wykluczenie z głosowania. Przyjmijmy założenie że: Został oddany głos na osobę X, która pracowała na paśmie 2m i z modulacją AM. W formularzu, zalogowany użytkownik wpisuję w miejsce ZNAK - X, zaznacza kółeczko przy 2m oraz przy AM. Oddaje głos. Teraz warunek jaki miałby spełnić formularz. Ten sam użytkownik nie może oddać już takiego samego głosu. Czyli domyślam się że przed wstawieniem wpisu do bazy, powinno pójść zapytanie: if użytkownik oddał głos i istnieje wpis w bazie - X, 2m, AM to głos został oddany, else może głosować. Chodzi o to że unikalny użytkownik może tylko oddać głos na jeden znak w różnych konfiguracjach, ale nie może tej samej powtórzyć. Czy ktoś może mnie naprowadzić jak to ugryźć? Wiadomość doklejona: Walczę dalej i wymyśliłem takie coś. Ale nie działa. Nie wiem czy to kwestia złego toku myślenia czy błędów w składni. Wiadomość doklejona: Czy to jest dobry warunek wykluczający z bazy danych: Wiadomość doklejona: Czy któryś z kolegów lub koleżanek byłby wstanie mi pomóc z tym zapytaniem? Czy to jest tak banalnie proste czy tak trudne że nikt nie chce mi dopomóc? Edytowane przez jajaja dnia 28.11.2010 22:21:56 |
|
Przejdź do forum: |