Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] utworzenie linkow na stronie
Forum PHP.pl > Forum > Przedszkole
roghatt
Witam.
chcialbym uzyskac jakas podpowiedz albo pomoc odnosnie utworzenia linkow na stronie.
Dokladnie chodzi o spis newsow ktore sa pobierane z bazy.
W bazie istnieja pola ID, TITLE, DESCRIPTION
Na stronie glownej mam zrobiony spis ostatnich 10 newsow w formie
- 1 news
- 2 news
- .... itd.

Chce zeby po kliknieciu w tytul newsa przechodzilo sie na podstrone gdzie jest ten tytul oraz opis newsa.

Ale zastanawiam sie jak po kliknieciu w temat newsa i po przejsciu na podstrone skrypt ma wiedziec ze ma tam wstawic tresc newsa w ktorego kliknelismy na stronei glownej.

Czy takie linki lepiej tworzyc np. w postaci:
index.php?top=1&komunikat=idnewsa
czy od razu najlepiej przyjazne linki.
Czy przyjaznymi linkami mozna bedzie sie pobawic na samym koncu?
patryczakowy
Jak masz robić przyjazne linki to lepiej odrazu bo puźniej po za tym że będziesz musiał napisać reguły do .hattcesa to jeszcze będziesz musiał przerobić wszystkie linki na stronie szkoda twojej roboty
roghatt
no ok no to przyjazne linki do razu.
ale jak sie za to w ogole zabrac?
sa jakies artykuly ciekawe ktore to wytlumacza komus kto to pierwszy raz robi?
Spawnm
Cytat(freelinkz @ 12.03.2009, 12:33:16 ) *
no ok no to przyjazne linki do razu.
ale jak sie za to w ogole zabrac?
sa jakies artykuly ciekawe ktore to wytlumacza komus kto to pierwszy raz robi?

tak, poszukaj, są w sieci prawie gotowce podane.
roghatt
poczytalem pare artykulow ktore znalazlem
http://sf.jogger.pl/2007/05/19/przyjazne-linki/
http://www.haxite.org/index.php3?site=arty...view&id=644
http://www.sprawnymarketing.pl/artykuly/mod-rewrite/

ale nie rozumiem tego... jak od razu modrewrite mi ma pomoc w utworzeniu linkow na stronie

jak dam a href dla artykulow po tytule np www.domena.pl/artykuly/polska/tytul_artykulu.html
i ma sie zaladowac podstrona z opisem konkretnego artykulu.

jak utworzyc linki i w jaki sposob maja byc pobierane na podstronie dane zeby bylo wiadomo ze opis jest odpowiedniego artykulu ktorego link klikneismy.
Spawnm
przy dodawaniu newsa sprawdzasz jego id
, wtedy juz wiesz że aby go wyswietlić dawal byś link typu art.php?id=$id

teraz w mod_rewrite zamieniasz art.php?id=$id na $title.html artykułu.
i w news.php dla usera dajesz już zwykłe moje_title.html
roghatt
ok to moze inaczej bo dalej do konca nie rozumiem...

  1. <?php
  2. $wynik2= mysql_query ("SELECT * FROM tabela ORDER BY id DESC LIMIT 10");
  3.  
  4. while($row=mysql_fetch_array($wynik2))
  5. {
  6. echo "• ";
  7. echo "<a href=\"";
  8. echo tutaj link;
  9. echo "\">";
  10. echo $row['title'];
  11. echo "</a>";
  12. echo "<br />";
  13. }
  14. ?>


Ten kod wyswietla mi ostatnio dodanych 10 artykulow z bazy.
W miejscu "tutaj link" musze cos wstawic zeby mi przekierowalo na strone gdzie sie znajduje tresc artykulu.
Co mi jest potrzebne do utworzenia takiego linku i zeby utworzyla sie podstrona.
Najpierw utworzenie linku.. pozniej przyjazne linki to juz sobie z tym poradze...
czy ID newsa rozumiem ma byc pobrane z bazy, bo kazdy artykul ma swoje id, czyli w linku bedzie cos z ID.
Pozniej na podstronie bedzie sam kod

  1. <?php
  2. echo $row['title'];
  3. echo "<br />";
  4. echo $row['description'];
  5. ?>


ale po linku to jakos samo dojdzie ze zostanie wyswietlony akurat opis artykulu tego ktory wybralismy?
fran1o
a moze tak...
  1. <?
  2. if ($_GET['akcja'] == 'wyswietl_newsa') {
  3. $id_newsa = $_GET['id'];
  4.  
  5. w zapytaniu ...WHERE id='$id_newsa'
  6. tutaj wyswietlanie newsa po przekazanym id
  7.  
  8. ?>
  9. ...

I jak wyswietlasz te 10 newsow to dodaj cos mniejwiecej takiego:
  1. <a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=wyswietl_newsa&id=<?php echo $row['id'];?>"><?php echo $row['title'];?></a>

Wtedy po nacisniecu tytulu newsa przekazez id do wyswietl_newsa któory wyswietli ci na stronie konkretnego newsa
chyba sie nie pomylilem w kodzi... jak tam to przepraszam... pisane z palca...;p
Spawnm
fran1o -> to mają być przyjazne linki .
twój sposób jest dobry do zwykłych newsów , ale tutaj ma to ładnie wyglądać, więc odpada .

//edit
@freelinkz->
W miejsce linku daj $title.html
gdzie $title to tytuł newsa przemieniony do przyjaznej postaci dla wyszukiwarki (użyj tej samej funkcji co przy tworzeniu gdy dodajesz newsa)
roghatt
udalo mi sie to zrobic,
u mnie jest maly problem z kodowaniem...
w bazie zle wyswietla znaki, a na stronie juz dobrze
ale jak z bazy pobieram to w zmiennej i w url nie zamienia mi dwoch znakow "ą" i "ś" i te dwa znaki mi ucina
Spawnm
to zamieniaj je na a ,s
w linkach nie powinno być polskich znaków.
roghatt
witam
odnosnie linkow to je zrobilem ale mam bledy


w index.php mam kawalek kodu:
  1. <?php
  2.  
  3. switch ($top)    {
  4.                case $newsPolska:
  5.                            include ("folder/test.php");
  6.                            break;
  7. default:
  8.                                include ("folder/test.php");
  9.                                break;
  10.            }
  11. ?>


w pliku test
  1. <?php    
  2. include ("parametry/parametry.php");
  3. $wynik2= mysql_query ("SELECT * FROM tabela WHERE (id=$komunikat)");
  4. $num_rows = mysql_num_rows($wynik2);
  5.    
  6.    if ($num_rows==0)
  7.            print ("&nbsp;Nie znaleziono takiego komunikatu/artykułu!");
  8.    else
  9.           if ($row = mysql_fetch_array($wynik2))
  10.            {
  11.    $tytul=$row['title'];
  12.    $tresc=$row['description'];
  13.  
  14.              ?>
  15.            <table border="0" width=100% cellpadding=3>    
  16.                    <tr>
  17.                        <td><b><?php print("$tytul"); ?></b></td>
  18.                    </tr>
  19.                    <tr>
  20.                        <td ><?php print("$tresc"); ?></td>
  21.                    </tr>
  22.  
  23.                    </table>
  24.                    
  25. <?php
  26.        }
  27.            ?>


linki wygladaja typu:
index.php?top=5&komunikat=19
id komunikatu pobierane z bazy. top=5 do id dla newsow pobrane z pliku parametry.php
w index mam spis tytulow i po kliknieciu miala sie otworzyc nowa strona, a teraz tresc artykulu pojawia sie pod spisem tytulow, a tego spisu ma nie byc.
cos zle z tym switch include zrobilem?
przyjazne linki jak pisalem to nie wiem jak zrobic.. linki by wygladaly typu id-tytul_dlugi_newsa.html.
ale teraz chce jakiekolwiek linkowanie zrobic.
prosze o pomoc

a i jeszcze jak jest odpalony sam index.php to pod spisem widnieje blad:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /tomek/xml/zakladki/rss/test.php on line 4
Nie znaleziono takiego komunikatu/artykułu!
Spawnm
czyli mysql_query ci czegoś nie znalazło.
  1. <?php
  2. include ("parametry/parametry.php");
  3. $wynik2= mysql_query ("SELECT * FROM tabela WHERE (id=$komunikat)");
  4. ?>

co jest w parametry.php?
daj prze query - echo $komunikat;
i po co nawias po where ?
powinno być where id='$komunikat'
roghatt
w parametry.php mam:
  1. <?php
  2. $db = mysql_connect ("domena.pl", "user", "pass");
  3. mysql_select_db ("dbname");
  4.  
  5. $newsPolska=5;
  6. $title[$newsPolska]="Newsy";
  7. ?>


zlikwidowalem nawias, z nawiasem czy bez to i tak dziala tak samo.
dalem echo $komunikat
i wypisuje mi ID to ostatnie z linku
index.php?top=5&komunikat=20
czyli wypisuje "20"
ale dlaczego mi ciagle pojawia sie spis tytulow na podstronie?
i na stronei glownej gdzie jest sam spis tytulow ciagle ten blad
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /tomek/xml/zakladki/rss/test.php on line 5
Nie znaleziono takiego komunikatu/artykuł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.