Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Jak do tego dołożyć odczytanie id?
Forum PHP.pl > Forum > Przedszkole
Max Damage
Już się pogubiłem. Chciałem aby po kliknięciu na wyświetlony temat otwierała się strona z linkiem jak poniżej w echo. Wiem że tak się to mniej więcej pisze tylko nie wiem w jak sposób dodać jeszcze odczytanie id tego tematu.

  1. <?php
  2. $lacz=lacz_bd();
  3. $zapytanie = "select * from forum order by id_artykulu desc";
  4. $wynik = $lacz->query($zapytanie);
  5.  
  6. while($wiadomosc=$wynik->fetch_assoc())
  7. {
  8. echo "<a href='artykul.php?id='$id_artykulu'>".$wiadomosc['temat']."</a>";
  9. echo '<br/>';
  10. ?>


A to jest właśnie ta strona, ale tu już chyba zupełnie pomieszałem z zapytaniem do bazy i tym cały id.
  1. <?php
  2. $id_artykulu=$_GET['id_artykulu'];
  3.  
  4. wyswietl_naglowek();
  5.  
  6. $lacz=lacz_bd();
  7. $zapytanie="select * from forum where id_artykulu='$id_artykulu'";
  8. $wynik=$lacz->query($zapytanie);
  9. while($wiadomosc=$wynik->fetch_assoc())
  10. echo $wiadomosc['temat'];
  11. echo '<br/>';
  12. echo $wiadomosc['wiadomosc'];
  13. echo '<br/>';
  14. echo date ('M d,H:i',$wiadomosc['umieszczony']);
  15. echo '<br/><br/>';
  16. ?>


Może mi to ktoś chociaż mniej więcej wyjaśnić jak powinienem to poprawić?
nospor
nie $id_artykulu=$_GET['id_artykulu'];
a: $id_artykulu=$_GET['id'];
Przeciez w linku dales ?id=...
Max Damage
No trochę lepiej ale nadal nie działa. Jedyne co się wyświetla to data która nie jest pobierana z tabeli. Jak powinienem prawidłowo napisać to zapytanie do bazy? I nie wyświetla mi u góry w linku numeru id tematu.
cornholio666
Czy przypadkiem w

  1. <?php
  2. $wynik->fetch_assoc()
  3. ?>


nie powinieneś podać argumentu ?

I chyba w 2 while zapomniałeś nawiasów
Max Damage
Cytat(cornholio666 @ 3.09.2007, 12:19:40 ) *
Czy przypadkiem w

  1. <?php
  2. $wynik->fetch_assoc()
  3. ?>


nie powinieneś podać argumentu ?

I chyba w 2 while zapomniałeś nawiasów

Nie bardzo cię rozumiem. Aby podać argument musiałbym napisać to chyba tak:
  1. <?php
  2. while($wiadomosc= mysql_fetch_assoc ($wynik))
  3. ?>

Nic innego mi sie nie kojarzy.
Ale fakt, nawiasów faktycznie zapomniałem, chociaż ich dodanie póki co nic nie pomogło...
cornholio666
Poczytaj

mysql_fetch_assoc
Max Damage
Poruszam ten temat po tak długim czasie z powodu iż właśnie nie mam teraz dużo wolnego czasu (ot paradoks wyszedł).....
Nadal nie wiem co jest źle. Nie wpisuje mi id do linka oraz nie działa ta druga pętla. Miło by było gdyby ktoś mi po prostu powiedział jak to powinno być, bo pomysły sie już skończyły. sciana.gif
crunch
hm, na początek usuń zbędne pojedyncze apostrofy w linku i w zapytaniu:
  1. <?php
  2. //adres konczył sie u Ciebie po =
  3. echo "<a href='artykul.php?id={$id_artykulu}'>".$wiadomosc['temat']."</a>";
  4. ?>



  1. <?php
  2. //a tu.. wątpię, że id przechowujesz w stringu ;p
  3. $zapytanie="select * from forum where id_artykulu={$id_artykulu}";
  4. ?>
Max Damage
Niestety nadal nie działa sad.gif
grom44
a gdzie masz ustawioną zmienną $id_artykułu
  1. <?php
  2. echo "<a href='artykul.php?id='$id_artykulu'>".$wiadomosc['temat']."</a>";
  3. ?>

nie powinno to byc tak napisane:
  1. <?php
  2. echo "<a href='artykul.php?id='$wiadomosc['id_artykulu']'>".$wiadomosc['temat']."</a>";
  3. ?>
Max Damage
Nom faktycznie. Dokładnie to tak:
  1. <?php
  2. echo "<a href='artykul.php?id=".$wiadomosc['id_artykulu']."'>".$wiadomosc['temat']."</a>";
  3. ?>

Ok, zakładam teraz, że drugie zapytanie do bazy już jest dobrze. Teraz po kliknieciu na dany temat wywala mi błąd:
  1. <?php
  2. Call to a member function fetch_assoc() on a non-object
  3. ?>

Jak mam inaczej napisać tą pętlę?
grom44
Błąd jest oczywisty...
  1. <?php
  2. $wiadomosc=$wynik->fetch_assoc()
  3. ?>

wywolujesz metode fetch_assoc() podczas gdy $wynik nie jest obiektem....
korzystasz z jakiejś klasy do obslugi baz danych... jaśli tak to gdzie tworzysz nowy obiekt?
Max Damage
W takim razie dlaczego to działało w pierwszej pętli a tutaj już nie ?
Chyba faktycznie nie rozumiem jak działa to mysql_fetch_assoc :/
No i niestety ale dalej nie wiem czym mam to zastąpić lub jak poprawnie przerobić ......
grom44
Spróbuj tak:

  1. <?php
  2. $id_artykulu=$_GET['id'];
  3.  
  4. wyswietl_naglowek();
  5.  
  6. $lacz=lacz_bd();
  7. $zapytanie="select * from forum where id_artykulu='$id_artykulu'";
  8. $wynik = mysql_query($zapytanie);
  9. while($wiadomosc= mysql_fetch_assoc($wynik))
  10. echo $wiadomosc['temat'];
  11. echo '<br/>';
  12. echo $wiadomosc['wiadomosc'];
  13. echo '<br/>';
  14. echo date ('M d,H:i',$wiadomosc['umieszczony']);
  15. echo '<br/><br/>';
  16. ?>
Max Damage
Hm, o ile dobrze pamiętam to już tak próbowałem, chociaż zobaczę jeszcze raz jak tylko zrobią ten hostingowany serwer. Bo zdaje się że właśnie totalnie padł..... dry.gif

Edit : Mam teraz taki błąd: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
nospor
  1. <?php
  2. $zapytanie="select * from forum where id_artykulu='$id_artykulu'";
  3. $wynik = mysql_query($zapytanie) or die ('zapytanie: '.$zapytanie.'---blad:'.mysql_error());
  4. while($wiadomosc= mysql_fetch_assoc($wynik)){
  5. echo $wiadomosc['temat'];
  6. echo '<br/>';
  7. echo $wiadomosc['wiadomosc'];
  8. echo '<br/>';
  9. echo date ('M d,H:i',$wiadomosc['umieszczony']);
  10. echo '<br/><br/>';
  11. }
  12. ?>
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.