[php][html]Funkcja PHP w kodzie HML

0

czy taki kod:

<?php include "ile.php";?>
<head>
<meta http-equiv="Content-Language" content="pl">
</head>

<p>jakis tekst [<?php echo srednia('111');?>]</p>

jest prawidłowy, czy muszę coś zmienić. Zaznaczam, że w pliku ile.php znaduje się właśnie funkcja srednia(), która pobiera jeden argument - ID artykułu, żeby sprawdzić, jaka jest średnia komentarzy w tym artykule. Dla wyjaśnienia jeszcze kod pliku ile.php:

<?php
function srednia($srednia)
{
$db=mysql_connect("serwer", "user", "haslo");
mysql_select_db("baza", $db);
$pytanie="SELECT ocena FROM komenty WHERE id_art='$srednia'";
$odpowiedz=mysql_query($pytanie);
mysql_close($db);
$ile=0;
while($wiersze = mysql_fetch_array($odpowiedz))
{
$ocena=$ocena+$wiersze['ocena'];
$ile++;
}
$ocena1=$ocena / $ile;
return $ocena1;
}
?>
0

jest prawidlowy, ale bardzo nieelegancki...

i jeszcze cos, daj spacje po miedzy ; a ?>

0

dokładnie, powinno działać (a tak nie jest ?) ale to bardzo nieeleganckie ogólnie mieszać html z php, najlepiej posługiwać się szablonami
nie dawaj spacji po średniku tylko w ogóle zamień go na spację, bo nawet w manualu php jest napisane że ?> to to samo co ;?> więc może być:

<?php echo ile('555') ?>

a jeśli masz włączone krótkie tagi ("<?") których używania nie polecam (zwłaszcza w połączeniu z potrzebą generowania xml ...), to jednak jest tam dodatkowa fajna rzecz jaką jest "<?=" co odpowiada "<?php echo " czyli kod mógłby z nimi wyglądać tak:

<?= ile('555') ?>

za to sama funkcja w tym dodatkowym pliku nie wygląda zbyt elegancko, choć się nie przyglądałem zbytnio

aha, ale i tak plus dla ciebie, bo niektórzy by to napisali tak:

echo "<p>jakis tekst [".srednia('111')."]</p>";

to jest dopiero koszmar

0

Ale mi nie działa. Pokazuje mi tylko jakiś tekst [ ]. Dodam, że używam IE

0

To, jakiej przeglądarki używasz, nie ma najmniejszego znaczenia. Sprawdź, co zwraca średnia. IMHO mysql_close może być wywołane za wcześnie, bo mysql_fetch_array chyba wymaga otwartego połączenia. Jeśli funkcja zwróci false, to się nic nie wyświetli. Zawsze możesz wykorzystać jawne rzutowanie na typ int.

1 użytkowników online, w tym zalogowanych: 0, gości: 1