Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+mysql] nie przekazuje zmiennej
Forum PHP.pl > Forum > Przedszkole
bigart
skrócona wersja newsa

  1. <?php
  2. $db = mysql_connect('localhost', 'root', 'haslo');
  3. mysql_select_db('so', $db);
  4.  
  5.  
  6.  
  7.  
  8. if (!$db)
  9.  
  10. {
  11.  
  12.  echo 'Błąd połączenia';
  13.  
  14.  exit;
  15.  
  16. }
  17. $zapytanie = "SELECT CASE WHEN LENGTH(tekst) = 300 THEN tekst ELSE CONCAT(SUBSTRING(tekst,1,300),'...') END tekst,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5";
  18.  
  19. $wynik = mysql_query ($zapytanie);
  20. if ($wynik) {
  21.  
  22. while ($wiersz = mysql_fetch_array ($wynik)) {
  23.  
  24. echo '<table>';
  25. echo '<tr>';
  26. echo '<td>';
  27. echo '<p><strong>Dodany: ';
  28.  
  29.  echo stripslashes($wiersz['data']);
  30.  
  31.  echo '</strong> przez: ';
  32.  
  33.  echo stripslashes($wiersz['autor']);
  34. echo '<br />Tytuł: ';
  35.  
  36. echo stripslashes($wiersz['tytul']);
  37. echo '<br />Treść: ';
  38. echo '<a href="show_news.php?idnews='.$wiersz['idnews'].'">' . $wiersz['tekst'] . '</a><br>';
  39. echo '<td>';
  40. echo '</tr>';
  41. echo '</table>';
  42. }
  43. echo '</p>';
  44. } 
  45.  
  46. ?>


a tutaj powinna pojawic sie tresc calego newsa
  1. <?php
  2. $db = mysql_connect('localhost', 'root', 'haslo');
  3. mysql_select_db('so', $db);
  4. $idnews = $_GET['idnews'];
  5.  
  6.  
  7.  
  8. if (!$db)
  9.  
  10. {
  11.  
  12.  echo 'Błąd połączenia';
  13.  
  14.  exit;
  15.  
  16. }
  17.  
  18. $zapytanie = "SELECT tekst from news where idnews=$idnews";
  19. $wynik = mysql_query ($zapytanie);
  20.  
  21. if ($wynik) {
  22. echo '<table width=98% align=center cellpadding=1 cellspacing=1;>'; 
  23. echo '<tr>';
  24. echo '<td width=50%>';
  25.  
  26. echo '<br />Treść: ';
  27.  
  28.  echo stripslashes($wiersz['tekst']);
  29.  
  30. echo '</p>';
  31. echo '</td>';
  32. echo '</tr>';
  33. }
  34.  
  35.  
  36.  
  37. echo '</table>';
  38.  
  39. echo '</form>';
  40.  
  41.  
  42. //mysql_free_result($wynik);
  43.  
  44.  
  45.  
  46. ?>


phpinfo(); pokazuje
php Variables
Variable Value
_REQUEST["idnews"] no value
_GET["idnews"] no value


prosze o pomoc
nospor
  1. <?php
  2. $zapytanie = "SELECT tekst from news where idnews=$idnews;
  3. ?>
w tej linii zjadles "
powinno byc:
  1. <?php
  2. $zapytanie = "SELECT tekst from news where idnews=$idnews";
  3. ?>
bigart
zrobiłem tak jak napisales i caly czas lipa

http://127.0.0.1/admin/show_news.php?idnews=
nie pobiera:(
nospor
no ale przeciez w linku co pokazales, to idnew nie ma zadnej wartosci, to sie nie dziw ze ci nei dziala.

tu masz pewnie jakis blad:
  1. <?php
  2. echo '<a href="show_news.php?idnews='.$wiersz['idnews'].'">'
  3. ?>

zobacz czy wiersz['idnews'] ma jakas wartosc.
bigart
w bazie danych sa wartosci ... np 49 i 53 ...

jak mozesz napisz gdzie i jak spr. wartosc



idnews to kolumna auto_increment primary key w bazie danych mysql
nospor
no ale skoro dostajesz puste linki bez zmiennej to jednak nie ma tam wartosci.
daj w petli:
  1. <?php
  2. while ($wiersz = mysql_fetch_array ($wynik)) {
  3. print_r($wiersz);
  4. //....
  5. ?>

i pokaz co dokladnie zawiera tablica wiersz
bigart
jak mozesz to napisz mi dokladnie w którym miejscu mam to wpisac w kodzie... tzn wklej mi moj kod php razem z tą pętla ... sorry ale sie pogubilem

print_r ($_GET); pokazuje Array ( [idnews] => )

  1. $zapytanie = "SELECT CASE WHEN LENGTH(tekst) = 300 THEN tekst ELSE CONCAT(SUBSTRING(tekst,1,300),'...') END tekst,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5;

chyba do zapytania trzeba dodac kolumne idnews

dodalem w ten sposob :
... END idnews,tekst,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5;

ale efekt jest taki ze w miejscu gdzie ma byc tekst skrócony jest cały... a po kliknieciu pojawia sie skrócony



ok
udalo sie:)



tak dziala jak trzeba czyli pokazuje skróconego newsa i po kliknieciu pojawia sie pelna tresc newsa
  1. $zapytanie = "SELECT CASE WHEN LENGTH(tekst) = 300 THEN tekst ELSE CONCAT(SUBSTRING(tekst,1,300),'...') END tekst,idnews,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5";

a w ten sposób pojawia sie zamiast skróconego newsa to pełna treść i jak sie kliknie to pojawia się skrócona!!
  1. $zapytanie = "SELECT CASE WHEN LENGTH(tekst) = 300 THEN tekst ELSE CONCAT(SUBSTRING(tekst,1,300),'...') END idnews,tekst,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5"

moze mi ktos wyjasnic dlaczego tak sie dzieje (przez przypadek udało mi sie rozwiązać problem a chciałbym znać przyczyne) ?

  1. $zapytanie = "SELECT idnews, CASE WHEN LENGTH(tekst) = 300 THEN tekst ELSE CONCAT(SUBSTRING(tekst,1,300),'...') END AS tekst,data,tytul,autor FROM news ORDER BY data DESC LIMIT 5";


tak tez dziala i chyba jest najbardziej jasne to zapytanie:)
thx DnaDesign:)
nospor
hehe, idnews mowisz dodales do selecta.... kurka, wydawalo mi sie to tak oczywiste ze powinno tam byc , ze nawet nie sprawdzilem czy ty to masz. ech, starosc nie radosc smile.gif
bigart
nospor dzieki za pomoc:) jezeli chodzi o mnie to jestem poczatkujacy i nic u mnie nie jest oczywiste:)ehehehe
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.