Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie danych z bazy
Forum PHP.pl > Forum > PHP
roobik
Witam!
Trochę się zamotałem...
Ale po kolei

BAZA:
id, pl,de,en
(w kolejnych kolumnach id - a jest ich 30 - znajduje się ten sam tekst ale w różnych językach)

PLIK php:
  1. <?
  2. $sql = mysql_connect("localhost", "", "");
  3. mysql_select_db("jeden");
  4. ?> 
  5.  
  6. <?
  7. $zapytanie = "SELECT * FROM tab1";
  8. $wykonaj = mysql_query("$zapytanie");
  9. while($id = mysql_fetch_array($wykonaj))
  10. {
  11. echo "<a href="".$id['pl']."">1</a><BR><BR>";
  12. }
  13. ?> 

moim celem jest takie stworzenie kodu, który będzie wyświetlał zawartość w odpowiednim języku, coś jakby:
http://localhost/1/test1.php?id=1&pl

chyba się zamotałem... sad.gif
nospor
pobieraj kolumne z jezykiem:
  1. <?php
  2.  
  3. $lang = $_GET['lang'];
  4. $zapytanie = "SELECT $lang lang FROM tab1";
  5. $wykonaj = mysql_query("$zapytanie");
  6. while($id = mysql_fetch_array($wykonaj))
  7. {
  8. echo "<a href="".$id['lang']."">1</a><BR><BR>";
  9. }
  10.  
  11. ?>

a link : http://blalala/strona.php?lang=pl

mozesz jeszcze dodac, ze jak nie ma w url parametru lang to domyslnie uzywasz pl.
roobik
tak zdaje się też próbowałem sad.gif

Oto moja tabelka (może coś podpowie)
  1. <?php
  2.  
  3. CREATE TABLE tab1 (
  4. id int(10) NOT NULL auto_increment,
  5. pl text NOT NULL,
  6. de text NOT NULL,
  7. en text NOT NULL,
  8. PRIMARY KEY (id)
  9. ) TYPE=MyISAM;
  10.  
  11. ?>
nospor
Cytat
tak zdaje się też próbowałem

wow, chlopie , Twoja wypowiedź wnosi dużo do tematu. Teraz to ja już wszystko wiem.
To była ironia.

Co ci w tej metodzie nie działa? Jakies błedy? Opisz troche wiecej, bo ja w tym co cipodalem nie widze bledu.

no jedynie to:
echo "<a href=\"".$id['lang']."\">1</a><BR><BR>";

ale kopiowalem bezmyslnie od ciebie.powinno byc:
echo $id['lang']."<BR><BR>";
roobik
  1. <?php
  2.  
  3. #
  4. # Struktura tabeli dla `tab1`
  5. #
  6.  
  7. CREATE TABLE tab1 (
  8. id int(10) NOT NULL auto_increment,
  9. pl text NOT NULL,
  10. de text NOT NULL,
  11. en text NOT NULL,
  12. PRIMARY KEY (id)
  13. ) TYPE=MyISAM;
  14.  
  15. #
  16. # Zrzut danych dla tabeli `tab1`
  17. #
  18.  
  19. INSERT INTO city VALUES (1, 'tekst polski', 'auf Deutsch', 'english version');
  20. INSERT INTO city VALUES (2, 'tekst polski', 'auf Deutsch', 'english version');
  21. INSERT INTO city VALUES (3, 'tekst polski', 'auf Deutsch', 'english version');
  22. INSERT INTO city VALUES (4, 'tekst polski', 'auf Deutsch', 'english version');
  23. INSERT INTO city VALUES (5, 'tekst polski', 'auf Deutsch', 'english version');
  24.  
  25. ?>

...i tak 30 rekordów
jak dałbym lang to błąd mam:
[quote]
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\1\test1.php on line 6

(na razie testujętylko to - nic innego nie ma w pliku test1.php
..sam nie wiem sad.gif
nospor
he? to co pokazales to jest zawarotsc pliku php? I ty go uruchamiasz jako php? Rety, czlowieku, przecież to jest kod sql, który trzeba w Mysql wykonac a nie w php.

A kod co ja ci podalem to ma byc w php i go wykonywac. Zacznim zaczniesz zabawę z php i mysql, poucz sie najpierw co to jest jedno a co drugie

no chyba ze ja totalnie nie kumam co ty tu przedstawiasz
roobik
nie - po prostu zrobiłem zrzut z phpAmina, a znaczniki same się przypisały jak wklejałem to tutaj biggrin.gif
a plik php jest parę postów wyżej biggrin.gif
smile.gifsmile.gifsmile.gif
nospor
dobra po malutku. podam ci kod, bedzie tez info o o bledach i pokaz co on wyswietla:

  1. <?php
  2.  
  3. if (isset($_GET['lang']))
  4.     $lang = $_GET['lang'];
  5. else
  6.   $lang = 'pl';
  7. $zapytanie = "SELECT $lang lang FROM tab1";
  8. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  9. while($id = mysql_fetch_array($wykonaj))
  10. {
  11. echo $id['lang']."<BR><BR>";
  12. }
  13.  
  14. ?>


pozatym pisales ze tylko to jest w tym skrypcie. a do bazy sie laczysz?

a na przyszlosc uzywaj odpowiedniego bbcode dla sql bo mozna cie zle zrozumiec, jak JA tongue.gif
roobik
  1. <?
  2. $sql = mysql_connect("localhost", "", "");
  3. mysql_select_db("jeden");
  4. ?> 
  5.  
  6. <?php
  7.  
  8. if (isset($_GET['lang']))
  9. $lang = $_GET['lang'];
  10. else
  11. $lang = 'pl';
  12. $zapytanie = "SELECT $lang lang FROM tab1";
  13. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  14. while($id = mysql_fetch_array($wykonaj))
  15. {
  16. echo $id['lang']."<BR><BR>";
  17. }
  18.  
  19. $lang = 'de';
  20. $zapytanie = "SELECT $lang lang FROM tab1";
  21. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  22. while($id = mysql_fetch_array($wykonaj))
  23. {
  24. echo $id['lang']."<BR><BR>";
  25. }
  26.  
  27. $lang = 'en';
  28. $zapytanie = "SELECT $lang lang FROM tab1";
  29. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  30. while($id = mysql_fetch_array($wykonaj))
  31. {
  32. echo $id['lang']."<BR><BR>";
  33. }
  34.  
  35. ?>

smile.gif w sumie, jak widaćtylko sopiowałem "wersję" PL - tak powstały dwie następne: DE i ANG.
I powiedzmy, że działa. Tyle, że widać wszystkie wpisy! smile.gif
A ja chciałbym, by pojawiały się każdy osobno...

Dajmy na to tak:
Cytat

id=1 - pobiera dane dotyczące informacji nr1 oraz dodatkowo &pl w języku polskim

Inny przykład:
Cytat

id=4 - pobiera dane dotyczące informacji nr4 oraz dodatkowo &de w języku niemieckim

...staram się jak nie wiem co... sad.gif
nospor
staram sie opanowac, staram sie opanowac, staram sie opanowac....... (x100000)

czy ja ci kazalem gdzies kopiowac pl na en i ang? to sie zalatwia paramtrem w link lang. jesli w linku podasz ....lang=en to ci pobierze wersje angielską. czy to tak trudno pojąć? raz postawilem lang=pl w kodzie, ale to poto, ze jesli nie nedzie w linku parametru lang, to domyslnie ustawi na pl. Chcesz jeszcze id, jaki kurka problem?
  1. <?php
  2.  
  3. if (isset($_GET['lang']))
  4. $lang = $_GET['lang'];
  5. else
  6. $lang = 'pl';
  7. $zapytanie = "SELECT $lang lang FROM tab1 where id=".$_GET['id'];
  8. echo 'zapytanie:'.$zapytanie.'<br />';
  9. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  10. while($id = mysql_fetch_array($wykonaj))
  11. {
  12. echo $id['lang']."<BR><BR>";
  13. }
  14.  
  15. ?>

i do jasnej ciasnej linki mają wygladac tsak :
....?id=1&lang=pl
....?id=2&lang=en
i podobnie. zmien cos w tym kodzie a oberwiesz. wrrrrr. ja ci podaje dobry kod, ty nie masz nic dopisywac. masz go tylko uruchomic i powiedziec co widzisz. czy o duzo prosze?
roobik
przepraszam za wszystko.... nie chciałem źle worriedsmiley.gif
powiem tak:
nospor - jesteś WIELKI!

WSZYSTKO DZIAŁA JAK NALEŻY!!!

Dzięki jak nie wiem co!!!!

Przedewszytkim jestem nad wyraz cierpliwy, ale Twoje posty balansowały na granicy mojej cierpliwości laugh.gif
----
nospor


pozostał tylko jeden problem
(ale wszystko działa!) smile.gif

po wpisaniu tego "kombinowanego" adresu (np. www.localhost/1/test1.php?id=2&lang=en) jest OK...

Ale jak jużdam samo: www.localhost/1/test1.php
to wywala mi taki błąd:
Cytat
You have an error in your SQL syntax near '' at line 1
nospor
a co ma sie dziac gdy nie bedzie id w linku? Ma nic nie wyswietlac? no problem:
  1. <?php
  2.  
  3.  
  4. if (isset($_GET['id']))
  5. {
  6. if (isset($_GET['lang']))
  7. $lang = $_GET['lang'];
  8. else
  9. $lang = 'pl';
  10. $zapytanie = "SELECT $lang lang FROM tab1 where id=".$_GET['id'];
  11. echo 'zapytanie:'.$zapytanie.'<br />';
  12. $wykonaj = mysql_query($zapytanie) or die(mysql_error()) ;
  13. while($id = mysql_fetch_array($wykonaj))
  14. {
  15. echo $id['lang']."<BR><BR>";
  16. }
  17. }
  18. else
  19. echo 'podaj id pieronie';
  20.  
  21. ?>


jesli ma robic cos innego, np. wyswietlisz wszystkie rekordy, to zrob to co mam w podpisie smile.gif , to nic trudnego. Juz i tak dzisiaj przegiałes
roobik
no tak .... za późno napisałem
jeszcze raz THX!

można zamknąć? winksmiley.jpg
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.