Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Tworzenie parametrów
Forum PHP.pl > Forum > Przedszkole
Watt
Witam,


Mam pytanie jest stworzyć link z parametrem - googlowłem trochę, ale chyba tylko bezsensowe linki są na przodzie.

Chodzi mi o coś takiego: plugin szuka sobie dowolnego słowa w bazie - znajduje - i tworzy link

Kod
strona.pl/skrypt.php?slowo=test


Mógłby mi ktoś z tym pomóc - jakiś przykład podać ? (Bardzo mi zależy, żeby się tego nauczyć)

Pozdrawiam!
PawelC
Np masz w bazie tabele slowa, a w niej kolumny id, slowo, tresc i robisz coś takiego:
  1. <?php
  2. mysql_connect('localhost','root','');
  3. mysql_select_db('katalog');
  4. $sql="SELECT slowo FROM slowa ORDER BY RAND() LIMIT 1";
  5. $pobierz=mysql_query($sql) or die(mysql_error());
  6. $wynik=mysql_fetch_array($pobierz);
  7. echo '<a href="skrypt.php?slowo='.$wynik['slowo'].'">'.$wynik['slowo'].'</a>';
  8. ?>


Co w końcowym efekecie da ci taki link np
skrypt.php?slowo=jakies slowo

Oczywiście to tylko działający przykład, który pobiera i pokazuje tylko jeden rekord z bazy, a jak chcesz aby pobrał kilka to w zapytanie sql zmieniasz limit na tyle ile chcesz pobrać, i do wyświetlenia pobranych rekordów użyj pętli while.
Malas
Nie wiem czy na pewno o to chodzi ale:
Cytat
require_once ('mysql/mysql_connect.php'); // Połącz się z bazą danych.
if(!is_numeric($_GET['id'])){
$sql=mysql_query("SELECT id, imie, nazwisko FROM player");//wykonujemy zapytanie
while($lista=mysql_fetch_assoc($sql) ){//w tablicę
echo '<a href="player.php?id='.$lista['id'].'">'.$lista['imie'].' ' .$lista['nazwisko']. '</a><br/>';//linki do profili

ja w tym przypadku robię sobie linki do profili zawodników.
Watt
Nie chce robić drugiego tematu odnośnie mojego problemu.

Jak teraz pobrać to słowo?
Chodz mi o to, że jeśli ktoś wejdze w ten link pojawi mu się to słowo. (Tu chyba chodzi o metodę GET?)

Skoro to jest tak prosto robione
Kod
echo '<a href="skrypt.php?slowo='.$wynik['slowo'].'">'.$wynik['slowo'].'</a>';

To po co ludzie męczą sie z httacces, żeby linki było 'seo', skoro można to tak prosto zrobić?
PawelC
Twój przykład pokazuje pobranie z bazy wszystkich rekordów, a Watt chciał aby jakiś/jakieś sobie losowo wybrał. Co nie zmienia faktu, że dobrze mu pokazałeś działanie pętli while, którą musiałby użyć do wyświetlenia kilku losowych rekordów.
Zrób plik skrypt.php a w nim:
  1. <?php
  2. mysql_connect('localhost','root','');
  3. mysql_select_db('katalog');
  4. $slowo=$_GET['slowo'];
  5. $sql="SELECT slowo FROM slowa where slowo='$slowo'";
  6. $pobierz=mysql_query($sql) or die(mysql_error());
  7. $wynik=mysql_fetch_array($pobierz);
  8. echo $wynik['slowo'];
  9. ?>

A jak chcesz sobie tylko wyświetlić samo słowo i nic innego nie będziesz pobierał z bazy to w pliku skrypt.php, daj tylko taki kod:
  1. <?php
  2. echo $_GET['slowo'];
  3. ?>


Watt poczytaj sobie o przekazywaniu danych/parametrów metodą get
Cytat
To po co ludzie męczą sie z httacces, żeby linki było 'seo', skoro można to tak prosto zrobić?

Link seo to jest link przyjazny np adres.pl/pozycjonowanie-stron-www/, a nie np taki skrypt.php?id=3 bo to jest link dynamiczny.
#luq
Cytat(Watt @ 12.04.2009, 10:43:21 ) *
To po co ludzie męczą sie z httacces, żeby linki było 'seo', skoro można to tak prosto zrobić?

Google lepiej łapie linka:
Kod
skrypt.php/bla

niż
Kod
skrypt.php?slowo=bla

Poza tym, jest to czytelniejsze dla człowieka
Watt
ExPlOiT, ale czy po wpiasniu w przeglądarkę:

Kod
strona.pl/slowo.php?id=slowo
pojawi mi się strona, która pokazuje "słowo"?

Bo może ja się źle wyraziłem, chciałem zrobić coś w stylu 'chmury tagów' - pobieranie jakiegoś słowa z tematu i wrzucenie go na chmurkę, a jak ktoś tam wejdzie to pojawiają mu się tematy z daną frazą.



Pozdrawiam
PawelC
Cytat
pojawi mi się strona, która pokazuje "słowo"?

Tak, pokaże Ci się te słowo które przekażesz w linku metodą GET
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.