laik-php utworzono 23 sierpnia 2009 utworzono 23 sierpnia 2009 (edytowane) Witam, jestem tu nowy. W necie znalazłem skrypt takiego "bloga" (nie wordpress), mam stronę i potrzebuję zrobić do niej podział na kategorie. Gdy np. dodaje jakąś notkę do bazy to mogę wcześniej we formularzu wybrać kategorie np: Software. i w bazie w tabeli blog w kategoria mam rekord Software. Ale to od strony admina. I mam problem. Jeśli mam np taką notkę z kategorii Software chce by był w kategorii Software np. index.php?cat=software (zeby pobierało to z bazy !) i gdy klikne ten link, wyświetlą mi się wszystkie notki z tej kategorii. Jest to chyba zdaje mi się dość proste. Bardzo was proszę o pomoc
Podgur komentarz 24 sierpnia 2009 komentarz 24 sierpnia 2009 Metoda GET czyli np. odnośnik: <a href="index.php?cat=software">Kategoria Software</a> I wrzucasz zapytanie : mysql_query("SELECT * FROM `tabela` WHERE `cat`='$_GET[cat]'"); oczywiście pozmieniaj np: * jeżeli nie chcesz wszystkich danych `tabela` ty wpisz nazwę tabeli `cat` tu wpisz nazwę pola, które określa pole kategorii btw dopisz sobie na końcu, czy zapytanie się poprawie wykonało:) peace, love and have funn
laik-php komentarz 24 sierpnia 2009 Autor komentarz 24 sierpnia 2009 Od 3h probuje i nic mi sie nie udaje. Ostrzegam !!! Dopiero ucze sie php i mysql, ale i tak nic nie rozumiem. Nie wiem czy o to chodzi prosze o pomoc <?php if (mysql_connect($sql_serwer, $sql_login, $sql_haslo) and mysql_select_db($sql_baza)) { $wynik = mysql_query("SELECT * FROM `blog` WHERE `kategoria`='$_GET[cat]'"); mysql_close();}else { echo "Blad ";} ?> Dodam ze baza to "darex", tabela to "blog", w mysql w Pole to "kategoria" i tam sa te wszystkie rekordy grafika, web i inne i tak jak wygldac powinno <p><a href=\"index.php?cat=web\">Tworzenie Stron WWW</a><br/><a href=\"index.php?cat=grafika\">Grafika</a><br/><a href=\"index.php?cat=programowanie\">Programowanie</a><br/><a href=\"index.php?cat=software\">Software</a><br/><a href=\"index.php?cat=hardware\">Hardware</a><br/></p>
luq komentarz 24 sierpnia 2009 komentarz 24 sierpnia 2009 mysql_query("SELECT * FROM `tabela` WHERE `cat`='$_GET[cat]'"); jeszcze daj mysql_escape_string() i zamiast * wpisuj zawsze te pola które chcesz - zwiększa to wydajność. $wynik = mysql_query("SELECT * FROM `blog` WHERE `kategoria`='$_GET[cat]'"); no i teraz jeszcze coś w stylu while( $row = mysql_fetch_assoc( $wynik ) ){ echo $row['kategoria'].'<br/>'; // robisz z tego linka} Do tego musisz mięć tabelkę z nazwami kategorii: categoryId[ | tag | name 1 web Tworzenie Stron WWW Przez to musisz dodać do zapytania LEFT JOIN. Manual PHP + manual MySQL i jedziesz.
laik-php komentarz 25 sierpnia 2009 Autor komentarz 25 sierpnia 2009 <?phpif (mysql_connect($sql_serwer, $sql_login, $sql_haslo) and mysql_select_db($sql_baza)) { $wynik = mysql_query("SELECT kategoria FROM `blog` WHERE `kategoria`='$_GET[cat]'"); while( $row = mysql_fetch_assoc( $wynik ) ){ echo $row['kategoria'].'<br/>'; // robisz z tego linka } mysql_close();}else { echo "Nie wykonano ";}?> Ja już nie wiem Próbuje cały czas, nawet nie wiem czy to jest dobrze, niby dobrze, bo pod <h2>Kategorie</h2> nic nie wyświetla ale nie ma tez zadnych warning, wiadomo. Ale nie bardzo wiem jak zrobić tą tabelkę z kategoriami i co to to LEFT JOIN
Esus komentarz 25 sierpnia 2009 komentarz 25 sierpnia 2009 LEFT JOIN to takie złączenie, które pozwala zwracać wyniki z dwóch tabel w taki sposób, że jeśli wynik z pierwszej tabeli nie znajdzie odpowiednika w drugiej tabeli, to zostanie zwrócony i złączony z wartościami NULL w drugiej tabeli. W ten sposób nie musimy się martwić, że jakaś krotka nie ma dodatkowych danych, które chcemy dołączyć. Przykład: mamy bazę artykułów i bazę zdjęć, do artykułu może być przyporządkowane zdjęcie lub nie, wówczas gdy chcemy wczytać na stronę listę takich artykułów (np. do stronicowania) możemy zastosować takie złączenie. Analogicznie działa RIGHT JOIN, przy czym SELECT a.id, a.title, a.body, ad.photo FROM articles a LEFT JOIN photos ad ON (a.id = ad.id_article) to to samo co: SELECT a.id, a.title, a.body, ad.photo FROM photos ad RIGHT JOIN articles a ON (ad.id_article = a.id) Jak masz problem z warningami, to może masz wyłączone wyświetlanie błędów, wtedy możesz zastosować coś takiego: if (!ini_get('display_errors')) { ini_set('display_errors', 1);}
laik-php komentarz 25 sierpnia 2009 Autor komentarz 25 sierpnia 2009 Ale to co napisałem wyżej to dobrze napewno cos jescze trzeba bo przeciez nie mam tej tabeli z np. | web | tworzenie www
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.