23-11-2012, 02:40
Witam,
Prosiłbym o pomoc w rozwiązaniu problemu ze skryptem dodającym komentarze i stronicowaniem.
Problem polega na tym, że skrypt dodający komentarze wg mnie działa, bo dane z komentarza zapisują się w bazie danych, ale nie wyświetla się komentarz pod formularzem dodającym komentarz. Dopiero jak odświeżę stronę to wtedy widać go.
Drugi problem jest źle działajace stronicowanie, gdzie prawidłowo jest wyświetlana liczba komentarzy do danego przepisu, ale nie działają linki w stronicowaniu: [1] [2] [3].... .
Na stronie, która wyświetla szczegóły przepisu i komentarze doi niego mam:
Program dodający komentarz wygląda następująco:
Tabela przepisy wygląda następująco:
Tabela komentarze_przepisu jest taka:
Pozdrawiam,
martinstw
Prosiłbym o pomoc w rozwiązaniu problemu ze skryptem dodającym komentarze i stronicowaniem.
Problem polega na tym, że skrypt dodający komentarze wg mnie działa, bo dane z komentarza zapisują się w bazie danych, ale nie wyświetla się komentarz pod formularzem dodającym komentarz. Dopiero jak odświeżę stronę to wtedy widać go.
Drugi problem jest źle działajace stronicowanie, gdzie prawidłowo jest wyświetlana liczba komentarzy do danego przepisu, ale nie działają linki w stronicowaniu: [1] [2] [3].... .
Na stronie, która wyświetla szczegóły przepisu i komentarze doi niego mam:
Kod:
<?php
if(isset($_GET['strona_komentarzy'])==true)
$strona=(($_GET['strona_komentarzy']-1)*3);
else
$strona=0;
//pobranie wszystkich komentarzy i wyświetlanie ich na stronie
//wyciągamy wszystkie komentarze dotyczące konkretnego przepisu - z id przepisu
$wyniki=mysql_query("SELECT * FROM komentarze WHERE id_przepisu={$_GET['id_przepisu']}");
echo mysql_error();
echo "<div id='komentarze' style='margin-left: 80px; margin-right: 80px;'>";//zle dziala
$licznik=0;
while($komentarz=mysql_fetch_assoc($wyniki))//pokazujeje komentarze jedne pod drugimi
{
if($licznik%2==0)//parzyste
{
echo "<span style='color: blue; '>{$komentarz['komentarz_przepisu']}</span>";
}
else //nieparzyste
{
echo "<span style='color: red;'>{$komentarz['komentarz_przepisu']}</span>";
}
$licznik++;
echo "<hr style='color: red; '>";
}
echo "</div>";
//stronicowanie- zle dziala
//zapytanie ktore liczy nam ile jest przepisów
$wynik=mysql_query("SELECT count(*) as ilosc FROM komentarze WHERE id_przepisu={$_GET['id_przepisu']}");
$komentarze=mysql_fetch_assoc($wynik);
echo "<span style='margin-left: 80px;'>Komentarzy</span><span style='margin-left:10px; color: green;'>( {$komentarze['ilosc']} )</span>";
$liczba_stron=ceil($komentarze['ilosc']/3); //liczba komentarzy/ilosc komentarzy i zaokraglac w gore-ceil (floor-zaokraglenie w dol)
echo "<span class='stronicowanie' style=' margin-left: 10px;'>";
$licznik=1;
while($licznik<=$liczba_stron) //wyswietli tyle razy ile mamy liczbe stron
{
echo "<a href='pokaz_przepis.php?strona_komentarzy=$licznik#komentarze' style='color: red; margin-left: 10px;'>[ {$licznik} ]</a>";//numery grup komentarzy, #komentarze- na koncu linku przenosi namw miejsce wystapienia diva (div komentarze), i trzeba objac wszystkie komentarze w diva
$licznik++;
}
echo "</span>";
echo "</div>";
?>
Program dodający komentarz wygląda następująco:
Kod:
<?php
mysql_connect('localhost','root','haslo');
mysql_select_db('przepisy_kulinarne_mp');
mysql_query("SET NAMES UTF8");//polaczenie w utf8
//zeby nie wstawiac pustych komentarzy-jesli tresc byla pusta to exit
if($_GET['komentarz_przepisu']=='')
exit();
mysql_query("INSERT INTO komentarze(komentarz_przepisu,id_przepisu) VALUES('{$_GET['komentarz_przepisu']}',{$_GET['id_przepisu']})");//odbieramy id z pola ukrytegio, komentarz razem z przepisem bedzie on przekazany
//powoduje automatyczne przensozenie do pliku pokaz_przepis bez odswierzania-nie mozna nic wyswietlac-ani echa, ani include,zadnego kodu html nie daje sie
echo "INSERT INTO komentarze(komentarz_przepisu,id_przepisu) VALUES('{$_GET['komentarz_przepisu']}',{$_GET['id_przepisu']})";
header("Location: pokaz_przepis.php");
?>
Tabela przepisy wygląda następująco:
Kod:
id_przepisu, autor_przepisu, id_kategorii, id_rodzaju_kuchni, czas_wykonania, tytul_przepisu, skladniki, tresc_przepisu, czas_przepisu, id_komentarza
Tabela komentarze_przepisu jest taka:
Kod:
id_komentarza, komentarz_przepisu, id_przepisu
Pozdrawiam,
martinstw