x-kom hosting

Kategorie notek

laik-php
utworzono
utworzono (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
komentarz

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
komentarz

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
komentarz
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
komentarz
<?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
komentarz

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
komentarz

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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.