Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX + php] "Star Rating Bar" - problem z id
Forum PHP.pl > Forum > XML, AJAX > AJAX
roobik
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ąć?
paziek
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
roobik
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
paziek
No to pobierałoby ID z bazy.
Szczerze mówiąc, to ja już nie wiem o co tutaj chodzi dry.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.