Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Wyświetlanie zmiennej z rekordu jako tekst
Dombas
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2010

Ostrzeżenie: (0%)
-----


Witajcie,
Jak w temacie, mam problem z wyświetlaniem treści rekordu, zmienne w nim zawarte wyświetla mi jako tekst. Np. w jednym z rekordów mam taką treść:
"$imie ma kota". Po połączeniu z bazą daję zapytanie:
  1. $imie = "Ala";
  2. $zapytanie = mysql_fetch_array(mysql_query("SELECT * FROM tabela WHERE id='1'"));
  3. echo $zapytanie["tresc"];

Chcę aby na stronie wyświetlił mi: "Ala ma kota", zamiast tego otrzymuję dokładną kopię tego co w rekordzie, czyli: "$imie ma kota".
Dodam, że tabela wygląda tak:
  1. CREATE TABLE tabela (
  2. id int UNSIGNED NOT NULL AUTO_INCREMENT,
  3. tytul varchar(8000) NOT NULL,
  4. tresc text NOT NULL,
  5. PRIMARY KEY (id)
  6. ) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


Próbowałem z funkcją eval() i wystarczyłaby gdyby nie to że jeśli w treści pojawią się znaki "" to dostaje głupawki. Np. jeśli mój rekord wygląda tak:
  1. <p style="padding: 10px;">$imie ma kota</p>

to otrzymuję taki błąd:
"Parse error: syntax error, unexpected 'padding' (T_STRING) in C:\wamp\www\test\index.php(27) : eval()'d code on line 1"
Wystarczy pozbyć się stylowania i wszystko gra. Próbowałem zamieniać znak " na &quot; ale wtedy dalej nie mam stylowania, bo w podglądzie strony wychodzi:
  1. <p style=&quot;padding: 10px;&quot;>$imie ma kota</p>

Jakieś pomysły?
Z góry dzięki za zainteresowanie moim tematem.

OK. Udało mi się rozwiązać problem samemu.
Treść do zmiennej którą pakuję w eval() musi być wstawiana w taki sposób:
  1. ?> <!-- przejście do HTML -->
  2. <p style="padding: 10px;">
  3. <?php echo $imie; // powrót do PHP ?>
  4. ma kota</p><!-- ponowne przejście do HTML -->

i wszystko gra.

Ten post edytował Dombas 30.09.2012, 19:55:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Thommee
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 8.08.2010

Ostrzeżenie: (0%)
-----


  1. $imie = 'Ala';
  2.  
  3. $var = "$imie ma kota";
  4. echo $var;
  5. // Ala ma kota
  6.  
  7. $var = '$imie ma kota';
  8. echo $var;
  9. // $imie ma kota
  10.  


zwróć uwagę na apostrofy zamiaast cudzysłowów w drugim przypadku otaczające wartość $var.
Go to the top of the page
+Quote Post
Dombas
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2010

Ostrzeżenie: (0%)
-----


Cytat(Thommee @ 14.10.2012, 09:01:34 ) *
  1. $imie = 'Ala';
  2.  
  3. $var = "$imie ma kota";
  4. echo $var;
  5. // Ala ma kota
  6.  
  7. $var = '$imie ma kota';
  8. echo $var;
  9. // $imie ma kota
  10.  


zwróć uwagę na apostrofy zamiaast cudzysłowów w drugim przypadku otaczające wartość $var.


Nie bardzo rozumiem czego tyczy się Twój post. Wiem do czego służą apostrowy i cudzysłowy. Mój temat mówi o czymś zupełnie innym, ale dzięki za zainteresowanie.

Odświeżam temat, gdyż do tej pory nie znalazłem innej metody. Zależy mi bardzo na "podciąganiu" danych z zawartością zaplecza z bazy MySQL tak aby w łatwy sposób można było przeprowadzić aktualizację. Dlatego też chcę zrezygnować z plików, które trzeba będzie każdorazowo podmieniać, a tak po prostu wykona się kod który zaktualizuje zawartość bazy. Pisaliście, że nie jest to bezpieczne rozwiązanie... Zastanawiam się dlaczego, skoro żaden użytkownik "z zewnątrz" nie podsiada dostępu do bazy przez co wyciągnięcie czegokolwiek jest dla niego niemożliwe.
Bardzo dziękuję każdemu za zainteresowanie tym tematem. Jakieś wskazówki nawet będą mile widziane. Może w końcu uda mi się znaleźć jakieś sensowne rozwiązanie i ruszyć dalej (IMG:style_emoticons/default/wink.gif)

Ten post edytował Dombas 30.10.2012, 13:37:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 03:12