azyl Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Witam Mam takie pytanie : jak w php zrobic zeby po nacisnieciu na przycisk/link na stronie wyswietlal sie kolejny rekord bazy ? Czyli wyswietla sie rekord z id=10 klikam na przycisk i wyswietla sie rekord z id=11 ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 A jak robisz, że w ogóle wyświetla się rekord bazy? Widzę, że porywasz się z motyką na słońce. Zakładając, że Twój skrypt upchany jest w pliku rekordy.php i domyślnie wyświetla 1 rekord bazy, to trzeba zrobić tak: 1. Pobrać (na początku skryptu) numer rekordu do wyświetlenia: $nr_rekordu = $_GET['id']; 2. Zmodyfikować kod (zapytanie), aby wyświetlał konkretny rekord: $query = "SELECT * FROM `tabela` WHERE `id`='".$nr_rekordu."';"; 3. Generować linki do poprzedniego i następnego rekordu: echo '<a href="rekord.php?id='.($nr_rekordu-1).'">poprzedni rekord</a> | <a href="rekord.php?id='.($nr_rekordu+1).'">następny rekord</a>'; Przy czym dobrze by było zabezpieczyć się przy pomocy: if (is_numeric($_GET['id'])) $nr_rekordu = $_GET['id']; Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
stivo Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Za długo szło mi pisanie posta, ale generalnie chciałem napisać, to co ULLISSES, tylko on to ujął ładnie i przejrzyście ;) Trudne nie jest :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
azyl Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Strona nie jest zapisana w trybie <form> tylko normalnie przez php, czy w tym wypadku ten sposob tez zadziala ? Ogolnie wyglada to tak : na stronie na srodku w oknie wyswietla sie tekst pobrany z bazy, skrypt pobiera tekst i id, po obu stronach sa przyciski, w prawo i lewo, ten w prawo ma wyswietlac kolejny rekord z bazy a ten w lewo poprzedni. Jak przeslac informacje o aktualnym id do strony wyswietlajacej kolejny rekord ? Gdyby to byl formularz to nie byloby problemu ale tutaj to dziala inaczej. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Pisząc tego posta wyżej bałem się, że ktoś mnie uprzedzi ;] Można jeszcze zmodyfikować zabezpieczenie łącząc go wyświetlaniem pierwszego rekordu: if ((is_numeric($_GET['id'])) && ($_GET['id']>1)) $nr_rekordu = $_GET['id'];else $nr_rekordu = 1; A jak wchodzisz na stronę? Przez jaki link? Powyższy kod powinien rozwiązać sprawę. Do wyświetlania [następny] i [poprzedni] można dolepić kod, aby [poprzedni] był nie aktywny, gdy wyświetlamy pierwszy element. Natomiast [następny], gdy dochodzimy do ostatniego rekordu. To jednak wymaga sprawdzenia ilości wszystkich rekordów w bazie, czyli dalszych modyfikacji kodu. Rzuć kod tej strony wyświetlania (nie zapomnij wykasować kawałka kodu z logowaniem do bazy - nie chcesz chyba, aby ktoś inny się tam logował). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
azyl Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Strona narazie jest u mnie na dysku, jeszcze jej nie ma na serwerze kod strony : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="style.css" rel="stylesheet" type="text/css"></head><body><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" class="bg1"> </td> <td width="697" valign="top"> <table width="697" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="bg1" valign="top"> <table width="697" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" width="141" style="padding-top:158px; "> <td valign="top" width="413"> <div style="position:absolute;top:1px;left:1px;height:0px;width:0px;overflow:hidden"><a href="http://www.freetemplatesonline.com"><h1>free templates</h1></a><a href="http://www.webdesign.org"><h1>web design</h1></a></div> <img src="images/about2.jpg" alt=""><br /> <table width="413" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" height="338"><img src="images/1.jpg" alt=""><br /> <a href="#"><img src="images/b1.jpg" alt=""></a><br /> <img src="images/2.jpg" alt=""></td> <td valign="top" width="352" class="bg_c"> <div class="text1"><div class="text2"><?php $id = 1; $select2 ="where id = ".$id; $sql_conn = mysql_connect('localhost','root','');mysql_select_db('piekarnia'); $wynik = mysql_query("select * from fam_quotes ".$select2)or die('blad zapytania');echo "<div id=\"cytat\" style=\" background-color: transparency \" >";if(mysql_num_rows($wynik)>0){while($r = mysql_fetch_assoc($wynik)) {echo "<b><span style=\"color:white\">".$r['author'].$r['id']."</span></b";$numer = $r['id'];echo "<br>";echo "<br>";echo "<span style=\"color:white\">".$r['quote']."</span>";echo "<br>";}}echo "</div>"; ?> </div><br /><br /><br /><img src="images/h_l.jpg" alt=""><br /> </td> <td valign="top"><img src="images/3.jpg" alt=""><br /> <a href="#"><img src="images/b2.jpg" alt=""></a><br /> <img src="images/4.jpg" alt=""></td> </tr> <tr> <td colspan="3" valign="top"><img src="images/bottom.jpg" alt=""></td> </tr> <tr> <td colspan="3" style="padding-left:13px; "> <a href="hjk.php"><img src="images/m1.jpg" alt=""></a><a href="index3.php"><img src="images/m2.jpg" alt=""></a><a href="index3.php"><img src="images/m3.jpg" alt=""></a> </td> </tr> </table> </td> <td valign="top" width="143" style="padding-top:158px; "> </td> </tr> </table> </td> </tr> <tr> <td><div class="copy">© 2005 | <a href="#">Privacy Policy</a><br /><a href="http://www.webdesign.org" class="fto1">Web Design</a> by <a href="http://www.freetemplatesonline.com" class="fto1">Free Templates</a> Online</div></td> </tr> </table> </td> <td width="50%" class="bg1"> </td> </tr> </table></body></html> Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
stivo Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Jak przeslac informacje o aktualnym id do strony wyswietlajacej kolejny rekord ? Gdyby to byl formularz to nie byloby problemu ale tutaj to dziala inaczej. Parametrem. Np. www.adres.pl/skrypt.php?ids=10 GETem pobierasz wartość parametru i wyświetlasz wynik zapytania. A przyciski i resztę masz wyżej.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
azyl Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 Przejscie do nastepnej strony odbywa sie przez przycisk a nie przez normalny link i jest poza kodem php. czy da sie jakos przekazac ten id w adresie linku jesli link jest zapisany w normalnym html ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
m4r Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 A jak generujesz stronę z przyciskiem? Nie da się w nią wrzucić <?php /* coś tam */ ?> ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 27 Maja 2010 Zgłoś Opublikowano 27 Maja 2010 1. Takiego stylu rysowania stron (tabela w tabeli) nie używa się od paru lat. Wywal ten template i znajdź normalny - oparty na DIV. 2. Jakie ISO? Obecnie tylko UTF8. 3. Ponieważ reszta strony jest do kosza, to zajmijmy się kodem PHP. Mamy: // 1$id = 1;$select2 ="where id = ".$id;// 2$sql_conn = mysql_connect('localhost','root','');mysql_select_db('piekarnia');$wynik = mysql_query("select * from fam_quotes ".$select2) or die('blad zapytania');// 3echo "<div id=\"cytat\" style=\" background-color: transparency \" >";if(mysql_num_rows($wynik)>0){while($r = mysql_fetch_assoc($wynik)) {// 4echo "<b><span style=\"color:white\">".$r['author'].$r['id']."</span></b";$numer = $r['id'];echo "<br>";echo "<br>";echo "<span style=\"color:white\">".$r['quote']."</span>";echo "<br>";}}echo "</div>"; 1. Ustawiasz ID na sztywno i bez żadnego zabezpieczenia dopisujesz do zapytania. Aby nie było na sztywno i było bezpiecznie, trzeba dorzucić sprawdzanie jak w moim kodzie wyżej. W przeciwnym wypadku mogę (w dużym uproszeniu) zrobić tak: twojastrona.pl/skrypt.php?id=;drop `piekarnia`; i nie ma bazy. 2. OR DIE? Dobre do debugowania, ale w finalnym projekcie problem z bazą zatrzyma ładowanie strony. Lepiej zrobić tak: If($wynik = mysql_query("select * from fam_quotes ".$select2)){tutaj kod wyświetlania wyników}else echo 'Zapytanie zwróciło 0 wyników.';Najlepiej natomiast sprawdzać, czy udało się połączyć z bazą. Jeśli tak, to wyszukujesz dane, jeśli nie to wywalasz błąd, że wystąpił problem z bazą i trzeba to zgłosić do administratora (czyli do Ciebie). 3. Jak wyświetlasz czysty HTML (bez zmiennych PHP), to używaj pojedynczych cudzysłowów, a style umieść w pliku styli: echo '<div id="cytat">';W plikach styli: #cytat {background-color: transparency}Nie wspomnę już nawet, że poprawna wartość to transparent 4. SPAN? B? BR i do tego w oddzielnych liniach?? No i błędy w kodzie... Bardziej poprawny zapis: echo '<p class="autor">'.$r[author].'('.$r[id].')</p>';echo '<p class="cytat">'.$r[quote].'</p>';Ustawienia klas w stylach: .autor {font-weight: bold; color: white}.cytat {color: white} Przycisk powodujący przejście do następnej strony? Toż to bezpodstawne użycie JS. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
azyl Opublikowano 28 Maja 2010 Zgłoś Opublikowano 28 Maja 2010 Dzieki wielkie za pomoc, zrobilem te przyciski w php i przechodzi normalnie miedzy stronami Co do stylu kodowania - zgadzam sie, ze to co napisalem nie jest poprawne, ale ja sie ogolnie nie zajmuje php, Ta strona byla pisana "na szybko", stad te bledy. PHP i HTML To nie moja specjalizacja ;) Wiecej sie chyba nie biore za kodowanie stron ... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 28 Maja 2010 Zgłoś Opublikowano 28 Maja 2010 Zamiast się poddawać, to zapoznaj się z tym: PHP - Wikibooks, biblioteka wolnych podręczników Z kursem HTML będzie znacznie gorzej, bo nie jestem na czasie, a wszystkie które znam też nie są na czasie.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
azyl Opublikowano 28 Maja 2010 Zgłoś Opublikowano 28 Maja 2010 (edytowane) Tutaj nie chodzi o poddawanie sie, mam inne sprawy na glowie i php nie jest priorytetem. Tym projektem juz sie nie zajmuje i wole czas przeznaczyc na pilniejsze sprawy ( chocby inzynierka w C# ) Niemniej dzieki za porady :) Byly bardzo pomocne :) Edytowane 28 Maja 2010 przez azyl Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
nappy Opublikowano 29 Maja 2010 Zgłoś Opublikowano 29 Maja 2010 @ULLISSES - Tworzenie stron WWW za pomocą XHTML/CSS - Kurs BrowseHappy ten kurs jest dosc dobry. Chyba, ze przez 'na czasie' rozumiesz html5. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 29 Maja 2010 Zgłoś Opublikowano 29 Maja 2010 nappy: Dzięki za linka - mniej więcej o to chodziło. Te, które znam, oparte są o bardzo stary kurs Pawła Wimmera. ;] Na HTML5 przyjdzie jeszcze czas... ;] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...