Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Wyciągnięcie danych z bazy
Forum PHP.pl > Forum > Przedszkole
lucca
Mam wielki problem, ale od początku.

Mam tabelkę, w bazie. Do niej dodaję sobie poszczególne koncerty z tras koncertowych. Zachciało mi się, aby po najechaniu na link, w hoverze wyskakiwał dymek, który wyświetli wszystkie koncerty z danego dnia.

Kod odpowiedzialny za to:
  1. <?php
  2. foreach ($this->links as $val) {
  3. $id = $val['id'];
  4. $type = $val['type'];
  5. $day = $val['day'];
  6. $month = $val['month'];
  7. $year = $val['year'];
  8. $band = $val['band'];
  9. $name = $val['name'];
  10. $title = $val['title'];
  11. $desc = $val['desc'];
  12. $venue = $val['venue'];
  13. $city = $val['city'];
  14. $country = $val['country'];
  15. if (($val['day'] == $cellValue) && (($val['month'] == $this->month) || ($val['month'] == '*')) && (($val['year'] == $this->year) || ($val['year'] == '*'))) {
  16. $cell = '<a href="calendar.php?display=event&date='.$year.''.$month.''.$day.'" onmouseover="return overlib(''.$val['band'].' - '.$val['venue'].'');" onmouseout="return nd();">'.$cellValue.'</a>';
  17. ?>


Problem w tym, że hover pokazuje mi dane tylko dla tego określonego linku. To znaczy, jeśli jest w danym dniu więcej koncertów, to on mi pokazuje tylko ostatni wpis z tego dnia.

Można to jakoś rozwiązać? Przez ten upał już zupełnie zgłupialem sad.gif

Pzdr
webasek
Wyciągasz tylko jedną daną z tego co widzę powinno być raczej coś takiego:

  1. <?php
  2. $i=1;
  3. $chmurka=" onmouseover="return overlib(&#092;''";
  4. $adres = "";
  5. $wpiswadres="";
  6. while ($val = mysql_fetch_array($wynik_zapytania))
  7. {
  8. foreach ($this->links as $val) {
  9. $id = $val['id'];
  10. $type = $val['type'];
  11. $day = $val['day'];
  12. $month = $val['month'];
  13. $year = $val['year'];
  14. $band = $val['band'];
  15. $name = $val['name'];
  16. $title = $val['title'];
  17. $desc = $val['desc'];
  18. $venue = $val['venue'];
  19. $city = $val['city'];
  20. $country = $val['country'];
  21. if (($val['day'] == $cellValue) && (($val['month'] == $this->month) || ($val['month'] == '*')) && (($val['year'] == $this->year) ||
  22. ($val['year'] == '*'))) {
  23.  if ($i==1)
  24.  {
  25.  $adres = "calendar.php?display=event&date='.$year.''.$month.''.$day;
  26.  $wpiswadres = $cellValue;
  27.  
  28.  }
  29.  chmurka.=$val['band'].' - '.$val['venue'];
  30.  }
  31. }
  32. chmurka.="&#092;")";
  33. $cell = '<a href='".$adres."' ".$chmurka." onmouseout="return nd();">'.$wpiswadres.'</a>';
  34. ?>


Jesli nie pomyliłem nawiasów to będzie działać
lucca
@webasek: Coś jakieś dziwne błędy zwraca:D

Ale mi chodzi raczej o konstruktywną podpowiedź, żeby zrozumieć co robię źle i zapamiętac na przyszłość.
webasek
Wiec pewnie pomyliłem gdzieś cudzysłowy sad.gifsad.gif Otóż źle robisz prostą rzecz: z bazy danych wyciągasz wszystkie wiersze jednak nie wszystkie wyświetlasz na stronie tylko ostatni albo raczej pierwszy wyciągnięty z bazy poczytaj na http://pl2.php.net/mysql_fetch_array ewntulanie przeszukaj google po coś polskiego. Musisz wypisać wszystkie do tego służy

  1. <?php
  2. while ($row = mysql_fetch_array($result))
  3. {
  4.  tutaj polecenia dla każde
  5. }
  6. ?>
lucca
Tp teraz już rozumiem!

Zaraz będe kobminował, jak będę miał jakiś problem, to odezwę się:)

+1

Chyba jednak potrzebuję więcej pomocy niż mi się wydaje:(
webasek
Mozesz napisać jakie błędy zwraca ten mój poprzedni kod? To go poprawie tak żeby działał
lucca
Hejka.

Ojj, dzięki wielkie. Coś za długo nad tym siedzę:(

Zwraca taki błąd
  1. <?php
  2. Parse error: syntax error, unexpected T_RETURN in /home/pedro/www/test/quick_calendar.php on line 272
  3. ?>


Na pewno w tym miejscu jest bład z cudzysłowami
  1. <?php
  2. ;
  3. $chmurka=" onmouseover="return overlib(&#092;''";
  4. ?>


W tym fragmencie brakuje $ przed chmurka.
  1. <?php
  2. chmurka.=$val['band'].' - '.$val['venue'];
  3.  }
  4. }
  5. chmurka.="\")";
  6. ?>


Dzięki za pomoc!
webasek
  1. <?php
  2. $chmurka=' onmouseover="return overlib(';
  3. ?>


to byłyby cudzysłowy jeszcze jak możesz to pokaż co wyrzuci chmurka po tej pętli być może tam coś jeszcze jest nie tak?
lucca
Kod ma teraz postać:
  1. <?php
  2. $i=1;
  3. $chmurka=' onmouseover="return overlib(';
  4. $adres = "";
  5. $wpiswadres="";
  6. $q = mysql_query("select * from calendar");
  7. while ($val = mysql_fetch_array($q))
  8. {
  9. foreach ($this->links as $val) {
  10. $id = $val['id'];
  11. $type = $val['type'];
  12. $day = $val['day'];
  13. $month = $val['month'];
  14. $year = $val['year'];
  15. $band = $val['band'];
  16. $name = $val['name'];
  17. $title = $val['title'];
  18. $desc = $val['desc'];
  19. $venue = $val['venue'];
  20. $city = $val['city'];
  21. $country = $val['country'];
  22. if (($val['day'] == $cellValue) && (($val['month'] == $this->month) || ($val['month'] == '*')) && (($val['year'] == $this->year) ||
  23. ($val['year'] == '*'))) {
  24.  if ($i==1)
  25.  {
  26.  $adres = "calendar.php?display=event&date='.$year.''.$month.''.$day";
  27.  $wpiswadres = $cellValue;
  28.  
  29.  }
  30.  $chmurka.=''.$val['band'].' - '.$val['venue'].'';
  31.  }
  32. }
  33. $chmurka.="'";
  34. $cell = '<a href="'.$adres.' '.$chmurka.' onmouseout="return nd();">'.$wpiswadres.'</a>';
  35. break;
  36.  
  37. }
  38. }
  39. ?>


Zwraca błąd :
  1. <?php
  2. [b]Parse error[/b]: syntax error, unexpected '}' in [b]/home/pedro/www/test/quick_calendar.php[/b] on line [b]321[/b]
  3. ?>


Już zgłupiałem

Fakt, już wiem gdzie problem.

Lecz gdy z fragmentu
  1. <?php
  2. }
  3. }
  4. ?>

usunę jedną klamrę, to strona ładuje się cały czas
webasek
W tym miejscu jest błąd:

  1. <?php
  2. $chmurka.="'";
  3. ?>


Powinno być

  1. <?php
  2. $chmurka.=")'";
  3. ?>
Lonas
Po co sobie utrudniać - o wiele prościej to można zrobić przy pomocy jquery
lucca
@webasek: Dzięki wielkie za pomoc. Ale chyba dam sobie z tym spokój. Po prostu szkoda czasu, a zrobić tego poprawnie nie potrafię:(

@lonas: Dzięki za linka.

@webasek: Zastrzelisz mnie. Dopiero teraz sprawdziłem. Na początku kodu zapytanie do bazy to:
  1. <?php
  2. $sql = "SELECT * FROM calendar WHERE (month='$m' AND year='$y') || (month='*' AND year='$y') || (month='$m' AND year='*') || (month='*' AND year='*')";
  3.  
  4. $rs = mysql_query($sql);
  5. $links = array(); 
  6. while ($rw = mysql_fetch_array($rs)) {
  7. extract($rw);
  8. $links[] = array('day'=>$day, 'band'=>$band, 'month'=>$month, 'year'=>$year, 'link'=>$link, 'desc'=>$desc);
  9. }
  10. ?>


Może teraz jakieś sugestie? Bo to jest tak. Mam kalendarz. W momencie kiedy jest jakiś event o określonej dacie, wywala tego linka. I ja na tym linku chcę zrobić taki hover.
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.