Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Newsy w dwóch językach
Forum PHP.pl > Forum > Bazy danych > MySQL
potreb
  1. <?php
  2. include (&#092;"config.php\");
  3. if($send=='Wyslij') {
  4. mysql_connect($DBhost,$DBuser,$DBpass);
  5. mysql_select_db($DBname); 
  6.  
  7. $data= Date(&#092;"d.m.Y\");
  8. $zapytanie = &#092;"INSERT INTO newspl SET title='$title',
  9. data='$data',text='$text',name='$name'&#092;";
  10. $wykonaj = mysql_query ($zapytanie);
  11. echo &#092;"<BR>News został dodany. \";
  12. }
  13. else {
  14. echo &#092;"
  15. <form method=&#092;"POST\" action=\"index.php?op=news\">
  16. Tytuł:<br>
  17. &nbsp;<input type=&#092;"text\" name=\"title\" size=\"60\" class=\"dzial\"><BR>
  18. <span class=&#092;"text1\">Zwyczka:<br>
  19. &nbsp;<input type=&#092;"text\" name=\"name\" size=\"30\" class=\"dzial\">
  20. <br>Tre&para;ć:
  21. &nbsp;<textarea class=&#092;"text2\" name=\"text\" cols=80 rows=15></textarea>
  22. <input class=&#092;"button\" type=\"submit\" value=\"Wyslij\" name=\"send\">
  23. &nbsp;<input class=&#092;"button\" type=\"reset\" value=\"Reset\" name=\"B2\">
  24. </form>
  25. &#092;";
  26. }
  27. ?>
Mam tutaj takie proste newsy jak zrobić żeby zamiast tabeli newspl można było wybierać np dwie tabele newspl i newseng np wybór z pola <select> Proszę o pomoc worriedsmiley.gif
SongoQ
  1. <?php
  2.  
  3. $zapytanie = &#092;"SELECT title, data, text, name FROM $tabela WHERE ............\";
  4.  
  5. ?>


O to chodzilo ?
potreb
Nie wiem czy tak jest dobrze, gdy mam tak
  1. <?php
  2. $zapytanie = &#092;"SELECT * FROM $tabela ORDER BY id DESC\";
  3. ?>

to pokazuje mi sie błąd taki, jużtak próbowałem a co do tamtego to nie mam wybierać tabeli tylko funkcje instert.

Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\oup\news.php on line 21
tiredsmiley.gif tiredsmiley.gif sadsmiley02.gif :roll2:
SongoQ
  1. <?php
  2.  
  3. zapytanie = 'INSERT INTO `'.$tabela...................
  4.  
  5. ?>


Zobacz czy tak przejdzie
potreb
Działa, ale chodzi mi głównie o wyswietlanie newsów.
  1. <?php
  2. $newsy = NEWS;
  3. $petla;
  4. display (10);
  5. function display ($ile)
  6. {
  7. mysql_connect (&#092;"127.0.0.1\",\"root\",\"krasnal\");
  8. mysql_select_db (krasnal);
  9. $zapytanie = &#092;"SELECT * FROM $newsy ORDER BY id DESC\";
  10. $wykonaj = mysql_query ($zapytanie);
  11.  
  12. while($wiersz=mysql_fetch_array ($wykonaj)) {
  13.  
  14. $wiersz[&#092;"text\"] = str_replace (\"n\", \"<br>\", $wiersz[\"text\"]);
  15.  
  16. $petla++;
  17. if ($petla>$ile) break;
  18.  
  19. echo &#092;"
  20.  
  21. <div style=padding-top:2px; class=news>&#092;".$wiersz['title'].\"</div>
  22.               <div class=data>[&#092;".$wiersz['data'].\"] | <B>\".$wiersz['name'].\"</B></div>
  23.             <div style=padding-top:3px; class=news2><img src=images/rep_5.gif  width=185 height=2><BR>
  24.             <div style=padding-top:5px; class=news2>
  25.               &#092;".$wiersz[text].\"</p></div>\";
  26.  
  27.  
  28. }
  29. }
  30.  
  31. ?>

Zmienna $newsy słuzy mi do tego aby okreslic w langu jaka to tabela dla jakiego jezyka.

Ale teraz mi wyskakuje bład taki:
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\oup\news.php on line 12

No i własnie nie wiem w czym teraz problem. Dzieki za odpowiedzi. Pozdrawiam
SongoQ
Zapytanie CI nic nie zwrocilo, a wywolujesz mysql_fetch_array, musisz dodac warunek ile rekordow zwrocilo
Michał2000
Jabym dal polecenie IF...

  1. <?php
  2. $lang = $_GET['lang'];
  3.  
  4. if (empty($lang))
  5. {
  6. //Łącz sie z baza z polskimi tekstami
  7. }
  8. if ($lang == &#092;"ang\")
  9. {
  10. //Łacz sie z bazą z angieslkimi tekstami
  11. }
  12.  
  13. ?>


A potem wystarczy dodawac na koncu URL'a

Polska strona = index.php
Angielska strona = index.php?lang=ang
SongoQ
@Michał2000 Nie wiem czy Cie dobrze zrozumialem, ale wydaje mi sie ze jest bezsensowne laczenie sie z inna baza w celu pobrania tekstu innego jezyka. Po co replokowac dane??
Ociu
hm.. może coś takiego, nie wiem czy będzie działać, bo nie robiłem jeszcze pobieranie danych z bazy poprzez pętlę for. Poza tym, zmęczony jestem ic oś może być źle napisanie.

  1. <?php
  2. for($i=0; $i<$ile; $i++)
  3. {
  4. $wiersz = mysql_fetch_array($wykonaj);
  5. $wiersz['text'] = nl2br($wiersz['text']);
  6. echo &#092;"<div style=padding-top:2px; class=news>\".$wiersz['title'].\"</div>
  7. <div class=data>[&#092;".$wiersz['data'].\"] | <B>\".$wiersz['name'].\"</B></div>
  8. <div style=padding-top:3px; class=news2><img src=images/rep_5.gif width=185 height=2><BR>
  9. <div style=padding-top:5px; class=news2>
  10. &#092;".$wiersz['text'].\"</p></div>\";
  11. }
  12. ?>
SongoQ
@Ociu nie musisz tak kombinowac wystarczy ze wstawisz warunek do ilosci rekordow:

  1. <?php
  2.  
  3. $szZapytanie = &#092;"...................\";
  4. $rWynik = mysql_query ($szZapytanie);
  5. if( mysql_num_rows($rWynik) > 0)
  6. {
  7.  while($wiersz=mysql_fetch_array ($rWynik))
  8.  ............................
  9.  
  10. }
  11.  
  12. ?>
jedrus4
Cytat(Michał2000 @ 2005-04-11 19:02:15)
  1. <?php
  2. $lang = $_GET['lang'];
  3.  
  4. if (empty($lang))
  5. {
  6. //Łącz sie z baza z polskimi tekstami
  7. }
  8. if ($lang == &#092;"ang\")
  9. {
  10. //Łacz sie z bazą z angieslkimi tekstami
  11. }
  12.  
  13. ?>

Jakiś ten Twój kod dziurawy.
A co sie stanie gdy user wpisze z palucha:
index.php?lang=rosyjski
?

jak wrzucasz odpowiedzi i wklejasz kod to moze sensowny?
a poza tym gdzie sprawdzenie czy $_GET['lang'] w ogole istnieje?
SongoQ
@jedrus4 To mnie tak akurat nie przerazilo, bo zawsze mozesz dopisac walidacje i bedzie wszystko ok, najgorsze jest to ze z tego kodu wynika ze @Michał2000 chce uruchamian kolejne instancje baz wedlug jezyka, co dla mnie sie to troche porazka wydaje i duplikowanem sie danych.
jedrus4
Cytat(SongoQ @ 2005-04-12 23:01:42)
najgorsze jest to ze z tego kodu wynika ze @Michał2000 chce uruchamian kolejne instancje baz wedlug jezyka, co dla mnie sie to troche porazka wydaje i duplikowanem sie danych.

No tak, ale to juz napisales. Przeciez wystarczy do tego jedna tabela - bylaby tam informacja np. o dacie dodania newsa, autorze i dwie wersje jezykowe. Pozniej wystarczy:

  1. <?php
  2.  
  3. if(isset(_$GET['lang']))
  4. {
  5.  $lang = $_GET['lang'];
  6.  
  7.  if(($lang=='pol')||($lang=='ang')) //mozna dodac tez inne
  8.  {
  9. $zapytanie = &#092;"SELECT newsy.data, newsy.autor, newsy.'\".$lang.\"'\";
  10. //polaczenie z baza danych, odczytanie wynikow i wyswietlenie
  11.  }
  12.  
  13.  else
  14.  {
  15. echo 'Niepoprawny jezyk'; //mozna wstawic opcje wyboru jezyka
  16.  }
  17.  
  18. }
  19.  
  20. else
  21. {
  22.  $lang = 'pol';  //mozna wstawic inny domyslny jezyk lub opcje wyboru jezyka
  23. }
  24.  
  25. ?>
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.