Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX + php] "Star Rating Bar" - problem z id
roobik
post
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
 
Start new topic
Odpowiedzi (1 - 3)
paziek
post
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
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ę (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pomyłka leżała gdzie indziej. Serdecznie przepraszam... (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Ten post edytował roobik 2.08.2008, 17:41:54
Go to the top of the page
+Quote Post
paziek
post
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 (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
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: 23.08.2025 - 05:02