Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jeszcze o eval
Forum PHP.pl > Forum > Przedszkole
yacol
Mam maly problem, z ktorym nie moge sobie poradzic... probowalem na rozne sposoby i nic...

Mam baze danych z tabela, ktora w jednej z kolumn zawiera m.in zapytanie sql SELECT...
Probuje wypisac zawartosc tej komorki na stronie, ale jak wiadomo print nie zinterpretuje mi zapytania poprawnie, tylko wypisze jako tekst, wiec probuje uzyc funkcji eval, ale to zwraca mi tylko napis 'Obiekt'.
Jak nalezy rozwiazac taka sprawe? :/

Zawartosc rekordu tabelki, ktora chce wyswietlic...

  1. <tr>
  2.  
  3. <td valign="top">
  4. <p class="big">
  5. W maju ...
  6. </p>
  7. </td>
  8. <td width=35>&nbsp;</td>
  9. <td width=180 valign="top">
  10. <a href="http://www.lpi.org" target="_blank"><img src="img/logo_latp.jpg" border="0" title="Partner Linux Professional Institute" alt="Partner Linux Professional Institute"></a>
  11. </td>
  12. </tr>
  13.  
  14. <br>
  15.  
  16. <br><br><strong>Obecnie w ofercie szkoleniowej z zakresu systemu Linux znajduj si?</strong><br><br>
  17. <tr>
  18. <td>
  19.  
  20. <ul type="square">
  21.  
  22. <?php
  23.  
  24. while($db1->next_row())
  25.  
  26. {
  27. ?>
  28. <li><a href=?section=training&sub=linux_details&tr_id=<?php print $db1->R['training_id']; ?>>
  29. <?php print $db1->R['training_no']; print " - "; print $db1->R['training_name']; ?>
  30. </a><br>
  31. <?php
  32. }
  33.  
  34. ?>
  35. </ul>
  36. </td>
  37.  
  38. </tr>



zawartosc strony, na ktorej chce to wyswietlic...

  1. <p class=\"big\">
  2.  
  3. <table cellpadding=\"2\" cellspacing=\"2\" border=0>
  4.  
  5.  
  6. <?php
  7.  
  8. $db=new Database;
  9. $db->connect();
  10.  
  11. $db->query(&#092;"SELECT * FROM tbl_modules WHERE modules_name='$section' AND sub_name='$sub' AND lang='$lang' ORDER BY modules_order DESC\");
  12.  
  13.  
  14.  
  15. $db1=new Database;
  16. $db1->connect();
  17.  
  18. $db1->query(&#092;"SELECT training_id, training_no, training_name FROM tbl_training WHERE trai
    n
  19. ng_section = 'linux' ORDER BY training_id\");
  20.  
  21.  
  22.  
  23. while($db->next_row())
  24.  
  25. {
  26. eval $db->R['modules_content'];
  27.  
  28.  
  29. }
  30. ?>
  31.  
  32. </p>
  33. </table>
nospor
eval () wykouje kod php. Twój rekord zawiera też html (głównie html), więc ci to nie zadziała.
A nie możesz poprostu w miejscu, gdzie jest kod php wstwić ciąg np. {KODPHP}
a potem poprzez str_replace zamienić go na to co ma sie wyswietlić?

Nie utrudniajcie sobie życia.
yacol
cale wyrazenie <a href=?section=training&sub=linux_details&tr_id=<?php print $db1->R['training_id']; ?>>
<?php print $db1->R['training_no']; print " - "; print $db1->R['training_name']; ?>
</a> mialbym zastapic {kodphp1}?

poza tym na tej stronie, oprocz tego rekordu wyswietlane sa rowniez inne, w zaleznosci od parametru sub_name i w tych innych rekordach rowniez wystepuje podobny problem (kod php). Jak sobie z tym poradzic?
nospor
a ty nie znasz tego kodu php co jest w rekordzie? jak znasz to go wykonaj i jego wynik podstaw za {KODPHP}.

A pozatym zamiast czystego html w rekordzie zrób tylko php, czyli daj
  1. <?php
  2.  
  3. echo &#092;"to twoj kod html\";
  4. //tu instrukcje inne php
  5. echo &#092;"tu znowu kod html\";
  6.  
  7. ?>
bedziesz mial wtedy sam kod php któy będzie mógł być wykonany przez eval
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.