Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX + php] "Star Rating Bar" - problem z id
roobik
post 2.08.2008, 11:06:47
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam!
STĄD wziąłem skrypt głosowań. Bardzo elegancki (polecam!). Używam go już przy innych działach, ale dopiero teraz, gdy robię nowy - pojawił się błąd.
W pliku _drawrating.php jest sobie taki zapis:
  1. <?php
  2. .
  3. .
  4. .
  5. $rater.='<li><a href="db.php?j='.$ncount.'&amp;q='.$q.'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
  6. .
  7. .
  8. .
  9. ?>

gdzie:
$j - to ocena (u mnie w skali 1-10)
$q - to (z założenia, bo o tym za moment) konkretne coś poddane głosowaniu/ocenianiu
$t - ip oceniającego
$c - jaka jest "skala" głosowań (maksymalna ilość gwiazdek, czyli u mnie 10)

I teraz tak. Nie mogę używać zmiennej $q (zbyt wiele plików się do niej odwołuje w globalach, a dodatkowo $q jest zabezpieczona w configu) więc postanowiłem ją po prostu zmienić. Byłoby fajnie, ale skrypt oryginalny "nie widzi" mojej zmiennej, więc dopisałem we wspomnianym pliku coś takiego:
  1. <?php
  2. $query = "SELECT * FROM tabela";
  3. $result = mysql_query($query);
  4.  while($r = mysql_fetch_array($result)) {
  5. $did = $r['id'];
  6. }
  7. ?>

No i oczywiście we wspomnianej linii (wycinek całego kodu) zrobiłem odpowiednią zmianę, czyli:
  1. <?php
  2. $rater.='<li><a href="db.php?j='.$ncount.'&amp;q='.$did.'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
  3. ?>

Nietrudno się domyślić, że głosując na którekolwiek "coś" mojej did przybiera ZAWSZE wartość 286 (tyle bowiem mam WSZYSTKICH rekordów w tabeli tabela... No to więc zmieniłem zapytanie na :
  1. <?php
  2. $query = "SELECT * FROM tabela LIMIT 1";
  3. ?>

...wtedy did ZAWSZE przybiera wartość 1
Jak z tego wybrnąć?
Go to the top of the page
+Quote Post
paziek
post 2.08.2008, 14:43:17
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


Jeśli chcesz (tak to wygląda) zrobić listę jakiś tam .. no czegoś na co ktoś będzie głosował, to
  1. <?php
  2. $query = "SELECT * FROM tabela";
  3. $result = mysql_query($query);
  4.  while($r = mysql_fetch_array($result)) {
  5. $rater.='<li><a href="db.php?j='.$ncount.'&amp;q='.$r['id'].'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
  6. }
  7. ?>


Ewentualnie daj $did jako tablicę i później zrób forEach'a na tym kodzie do $rater.

Wtedy ładnie ci wylistuje wszystkie cośie do głosowania, z unikalnymi ID
Go to the top of the page
+Quote Post
roobik
post 2.08.2008, 15:36:06
Post #3





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Cytat
Wtedy ładnie ci wylistuje wszystkie cośie do głosowania, z unikalnymi ID

Nie nie... nie zrozumieliśmy się winksmiley.jpg To nie mają być unikalne, lecz już przypisane id w tabeli tabela.

edit//
uporałem sięz tym... okazało się, że jedna ze zmiennych występująca w skrypcie oceniania przypadkiem całkowicie miała identyczną nazwę co "moja" zmienna używana na stronie... oczywiście wszystkie rozwiązania są prawidłowe smile.gif Pomyłka leżała gdzie indziej. Serdecznie przepraszam... sadsmiley02.gif

Ten post edytował roobik 2.08.2008, 17:41:54
Go to the top of the page
+Quote Post
paziek
post 2.08.2008, 20:44:07
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


No to pobierałoby ID z bazy.
Szczerze mówiąc, to ja już nie wiem o co tutaj chodzi dry.gif
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: 26.06.2025 - 03:19