Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Link +baza
Forum PHP.pl > Forum > Przedszkole
gobsagi
Witam mam problem: przesylajac zmienna w linku otwiera sie nowy plik i tam poprzez ta zmienna potrzebuje wyswietlic jeden wiersz z bazy. Jak to zrobic. Prosze o pomoc.

  1. <?php
  2.  
  3. $link = $_REQUEST['corporation']; //pobieram zmienna z linku href
  4. // informacje na temat bazy
  5. $host = '*';
  6. $user = '*';
  7. $password = '*';
  8. $dbName = '*';
  9.  
  10. // polaczenie i wybór bazy danych
  11. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  12. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  13.  
  14. // pobierabie wartości z tabeli "tabela_testowa"
  15. $sql = "SELECT * FROM baza";
  16.  
  17. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  18. while ($lista = mysql_fetch_array($rezultat)) {
  19.  
  20. echo "hmm...";// tutaj powinno wyswietli wiersz z bazy odnosnie do zmiennej $link;
  21. }
  22.  
  23. ?>
  24.  
varez
nie rozumiem Cię
muk4
Chcesz wyświetlić kolumnę z bazy która jest w adresie np. localhost/index.php?col=kolumna ?
zamiast $_REQUEST polecam $_GET

wtedy:
dla localhost/index.php?col=kolumna :

  1. $col = $_GET['col']; //pobieram zmienna z linku href
  2. // informacje na temat bazy
  3. $host = '*';
  4. $user = '*';
  5. $password = '*';
  6. $dbName = '*';
  7.  
  8. // polaczenie i wybór bazy danych
  9. $polacz = mysql_connect($host, $user, $password) or die(mysql_error());
  10. $db = mysql_select_db($dbName, $polacz) or die(mysql_error());
  11.  
  12. // pobierabie wartości z tabeli "tabela_testowa"
  13. $sql = "SELECT `$col` FROM baza"; //czy tabela powinna nazywać się baza?
  14.  
  15. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  16. while ($lista = mysql_fetch_array($rezultat)) {
  17.  
  18. echo $lista[0]; // wylistuje wszystkie wartości z kolumny $col
  19. }
  20.  
  21. ?>


Ale raczej się tak nie robi, bo ktoś ci podmieni link i np zamiast odczytać kolumnę login odczyta hasłasmile.gif
varez
albo usunie całą bazę danych ;]
(sql injection)
gobsagi
Juz przestalem myslec. Takie banalne a takie trudne, teraz mi sie wyswietla:Unknown column in 'field list'

Czyli jak mam to zrobic aby zmienna z linku przeniesc na druga strone..?
varez
czyli ty chcesz przeczytać zmienną uzytkownika, zapisac ja do bazy, po to zeby byla dostepna na kolejnych podstronach??
użyj sesji, nie bazy danych! i naucz się zadawac pytania, bo w sumie dalej nie wiem czy wiem o czym mówisz..
gobsagi
tu nie ma zadnych uzytkownikow. Poprostu, na pierwszej stronie pobieram z bazy nazwy samochodow i gdy klikne na "pokaz wiecej" chce zobaczyc wtedy wszystko o danym samochodzie. Nie wiem jak inaczej wytlumaczyc...
muk4
Na pierwszej stronie robisz link Pokaż więcej a do adresu dopisujesz zmienne które chcesz przesłać z wartościami.
Polecam lekturę:
http://pl.wikipedia.org/wiki/GET_(metoda)
http://pl.wikibooks.org/wiki/PHP/Formularze

link np. www.strona.pl/index.php?zmienna=abc
Potem na drugiej podstronie ją odczytujesz:
  1. echo $_GET['zmienna']; //pokaże abc
gobsagi
To juz zrobilem, ale teraz jak na podstawie tej zmiennej wyciagnietej z linku - > wyswietlic dane dotyczace samochodu?

Musi byc cos w tym stylu : Jezeli link zawiera zmienna fiat, to przez ta zmienna wyswietla sie wszystko o fiacie... brrrrrr
muk4
Musisz pokazać jak wygląda tabela w bazie bo inaczej nie da rady.
gobsagi
id date_created date_updated element_1 element_2 element_3 element_4 element_5 element_6

$col - czyli zmienna pobierana z linku

$sql = "SELECT `$col` FROM baza WHERE $fiat"; //nie wiem ja to sformulowac..

$rezultat = mysql_query($sql, $polacz) or die(mysql_error());
while ($lista = mysql_fetch_array($rezultat)) {

echo $lista[element_1]; // wyswietla wszystkie wartosci z kolumny element na podstawie zmiennej $col
echo $lista[element_1]; // wyswietla wszystkie wartosci z kolumny element na podstawie zmiennej $col
echo $lista[element_2]; // wyswietla wszystkie wartosci z kolumny element na podstawie zmiennej $col
echo $lista[element_3]; // wyswietla wszystkie wartosci z kolumny element na podstawie zmiennej $col
}

Niech ktos pomoze bo zaraz j.... dostane! tongue.gif
muk4
Nie, olej tamten kod. Wtedy nie wiedziałem (nikt nie wiedział smile.gif) o co ci chodzi.

Jeżeli chcesz np wyświetlić wszystkie informacje dotyczące marki FIAT robisz link
www.strona.pl/index.php?marka=fiat

i potem na innej stronie

  1. <?php
  2. $marka = $_GET['marka'] //pobiera nazwę marki - w tym przypadku fiat
  3.  
  4. $sql = "SELECT * FROM baza WHERE `element_1`='fiat' "; //pobiera wszystkie elementy dotyczące FIATA (nie wiem w której kolumnie przechowujesz markę auta - wybrałem 1
  5.  
  6. $rezultat = mysql_query($sql, $polacz) or die(mysql_error());
  7. while ($lista = mysql_fetch_assoc($rezultat)) { // dałem mysql_fetch_assoc - wtedy tablica jest bardziej przejrzysta
  8.  
  9. echo $lista['element_1']; // wyswietla wszystkie wartosci z kolumny element_1 czyli w tym wypadku FIAT
  10. echo $lista['element_2']; // wyswietla wszystkie wartosci z kolumny element_2
  11. echo $lista['element_3']; // wyswietla wszystkie wartosci z kolumny element_3
  12. echo $lista['element_3']; // wyswietla wszystkie wartosci z kolumny element_4
  13. echo $lista['element_3']; // wyswietla wszystkie wartosci z kolumny element_5
  14. echo $lista['element_3']; // wyswietla wszystkie wartosci z kolumny element_6
  15. }
  16.  
  17. ?>
gobsagi
Wielkie dzieki! Dalej juz sobie poradze! PZD.
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.