Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Kilkanaście wyświetleń...
Forum PHP.pl > Forum > Przedszkole
Lee
Piszę właśnie system newsów i mam problem, bo gdy kliknę "czytaj dalej" owszem przenosi mnie tam gdzie trzeba i wyświetla wpisy z bazy danych, ale nie tak jak trzeba :/, bo wywala wszystkie wpisy z pola "czytaj" z tabeli "main_news", a chcę aby jeżeli przy news o id=2 kliknę czytaj dalej to wyświetlało wpis o id=2 a nie wszystkie wpisy z pola "czytaj":

plik functions.php
  1. <?
  2. include ('config.php');
  3.  
  4. ############################################################
  5. ## Funkcja newsów ##
  6. ############################################################
  7. $zapytanie = "SELECT * FROM main_news WHERE id ORDER BY id DESC";
  8. $wykonaj = mysql_query($zapytanie);
  9. while ($wynik = mysql_fetch_array($wykonaj)){
  10.  $aNewsList[] = $wynik;
  11. }
  12.  
  13.  
  14.  $zapytanie = "SELECT * FROM main_comments WHERE id";
  15.  $wykonaj = mysql_query($zapytanie);
  16.  $comments = mysql_num_rows($wykonaj);
  17.  
  18.  $zapytanie = "SELECT * FROM main_news WHERE id";
  19.  $wykonaj = mysql_query($zapytanie);
  20.  $news = mysql_num_rows($wykonaj);
  21.  
  22. Function news(){
  23.  
  24. global $aNewsList, $data, $comments, $news;
  25.  
  26. if($news == 0){
  27. echo 'Nie ma newsów<br>';
  28. }
  29.  
  30. else {
  31. foreach ($aNewsList as $aNews){
  32. echo '<table style="width: 450px;" cellspacing="0" cellpadding="5">
  33. <tr>
  34.  <td style="height: 20px; background-color: #cccccc" class="text" align="left" colspan="2"><b>.:: '.$aNews['title'].'</b></td>
  35. </tr><tr>
  36.  <td style="background-color: #B6B6B6" class="text" align="justify" valign="top">'.$aNews['tresc'].'</td>
  37.  <td style="background-color: #B6B6B6" class="text" align="right" valign="center"><img src="'.$aNews['avatar'].'"></td>
  38. </tr>
  39. </table> 
  40. <table style="width: 450px;" cellspacing="0" cellpadding="5">
  41. <tr>
  42.  <td style="height: 20px; background-color: #cccccc" class="text" align="left"><b>Dodał: </b>'.$aNews['author'].' | '.$data.'</td>
  43. <td style="height: 20px; background-color: #cccccc" class="comments" align="right"><a href="news.php?id='.$aNews['id'].'">Czytaj więcej...</a> | Komentarze[<b>'.$comments.'</b>]</td>
  44. </tr></table><br>';
  45. }
  46.  }
  47. }
  48. ?>


plik news.php
  1. <?
  2. include ('config.php');
  3. include ('functions.php');
  4.  
  5. echo '<html><head>
  6. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  7. <meta name="Keywords" content="'.$keywords.'">
  8. <meta name="Description" content="'.$description.'">
  9. <meta http-equiv="Content-Language" content="'.$lang.'">
  10. <meta http-equiv="Reply-to" content="'.$email.'">
  11. <meta name="Author" content="'.$nick.'">
  12. <title>'.$title.' - '.$slogan.'</title>
  13. <link rel="stylesheet" href="style.css" type="text/css">
  14. </head><body>
  15.  
  16. <table align="center" cellspacing="0" cellpadding="3" style="border: 1px solid black; width: 800px;">
  17.  <tr>
  18.  <td class="title" align="center" colspan="3">'.$title.' '.$slogan.'</td>
  19.  </tr>
  20.  <tr>
  21.  <td class="lmenu" align="left" valign="top">Lewe Menu</td>
  22.  <td class="cmenu" align="center" valign="top"><br>';
  23.  foreach ($aNewsList as $aNews){
  24.  
  25.  $id = $aNews['id'];
  26. if ($id >= 1){
  27.  $zapytanie = "SELECT czytaj FROM main_news WHERE id=$id";
  28.  $wykonaj = mysql_query($zapytanie);
  29.  while ($wynik = mysql_fetch_array($wykonaj)){
  30.  $czytaj = $wynik['czytaj'];
  31.  }
  32. echo $czytaj;  
  33. }
  34.  
  35. else if ($id == 0){
  36. echo 'Artykuł o wybranym numerze nie istnieje !';
  37. } 
  38.  }  
  39.  echo'<br></td>
  40.  <td class="rmenu" align="left" valign="top">Prawe Menu</td>
  41.  </tr>
  42. <tr>
  43.  <td class="copyright" align="center" colspan="3">&copy; Copyright 2006 Gothic World. All right reserved. Engine powered by Lee</td>
  44.  </tr>
  45. </table>
  46.  
  47. </body>
  48. </html>';
  49. ?>


Czy możecie mi powiedzieć co mam źle ? :| Mo już od 4h się męcze,a moja psychika wisi na włosku i boje się o klawiature mad.gif
nospor
  1. SELECT *
  2. FROM main_comments
  3. WHERE id
smile.gif
Proponuję zajrzec tu:
http://dev.mysql.com/doc/refman/5.0/en/select.html
i przypatrzec się jak wyglądają zapytania wykorzystujące where

ps: i proszę poprawic tytul o znacznik zgodnie z zasadami forum Przedszkole
Lee
1. Poprawiłem nazwe tematu
2. to co zacytowałeś nie ma żadnego powiązania z moim problemem

ponawiam prośbę o udzielenie pomocy w moim problemie...
nospor
Cytat
to co zacytowałeś nie ma żadnego powiązania z moim problemem
W sumie racja. aczkolwiek to co zrobiles : ...where id
jest zbędne, gdyz zakladam ze id to identyfikator rekordu, a ten jest zawsze > 0, wiec ten warunek jest zawsze spelniony. poco więc robic warunek, ktory jest zawsze spelniony?

Co do problemu:
jedyne co mi przychodzi do glowy to to, ze u ciebie kazdy rekord ma te samo id.
zrob se tak:
  1. <?php
  2. $zapytanie = "SELECT czytaj FROM main_news WHERE id=$id";
  3. echo $zapytanie;
  4. ?>
i to zapytanie co ci wyswietli wstaw do PMA lub czegos innego i sprawdz czy zwroci ci to co ma zwrocic
Lee
Wymyśliłem coś, ale chyba tak się nie da :/

1. A gdyby tak do zmiennej pobrać adres z przeglądarki i potem z tej zmiennej wziąśc to id i potem juz jakoś pójdzie, wiecie o co mi chodzi, tylko problem jest właśnie z tym popbraniem adresu :/

EDIT: 2. Można walnąć pętle, która zwiększa id o 1 pobiera do $zapytanie i znowu zwiększa o 1 ale to pierwsze chyba jest bardziej prawdopodobne
phobos
lee ile tych newsów na jednej stronie wyswietlasz ? tylko jeden czy pare naraz?
Lee
kilka na jednej stronie wyświetlam... może jest inny sposób na wyświetlanie kilku newsów, ale ja się dowiedziałem o tym..może dlatego nie działa :/
bim2
Mhh, to drugie news.php to ma pobierac newsa tak? a czemu wysylsz id=1 a masz foreach $NewsID jakos tak ? Daj foreach($id AS...
Lee
w którym momencie ? to news.php ma działać tak:

mam tabele main_news i w nim pola:
- id
- title
- tresc
- czytaj
- author
- avatar

i chcę aby do pliku news.php pobierało pole czytaj w zależności od ID newsa, czyli jeżeli klikne w news o id=2 to wczytuje z wpisu o id 2 pole "czytaj" chyba łapiecie :]
LBO
  1. <?php
  2. foreach ($aNewsList as $aNews) {
  3. //your code
  4. }
  5. ?>
dlatego w news.php wywala Ci wszystkie wpisy...

edit:
$id nie powinienes pobierac z $aNews['id'] tylko z tablicy $_GET['id']
Lee
napisz jak to powinno wyglądać

czyżby tak ?:
news.php
  1. <?php
  2.  
  3.  $id = $_GET['id'];
  4. if ($id >= 1){
  5.  $zapytanie = "SELECT czytaj FROM main_news WHERE id=$id";
  6.  $wykonaj = mysql_query($zapytanie);
  7.  while ($wynik = mysql_fetch_array($wykonaj)){
  8.  $czytaj = $wynik['czytaj'];
  9.  }
  10. echo $czytaj;  
  11. }
  12.  
  13. else if ($id == 0){
  14. echo 'Artykuł o wybranym numerze nie istnieje !';
  15. }  
  16. ?>


UPDATE: STARY KOCHAM CIE ! Działa ^^ biggrin.gif I love U :* ;]
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.