Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Menu i podstrony
danielv13
post 11.06.2007, 17:45:49
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


Witam. Mam w bazie tabelę podstrony (id, tutul, tresc...). Jak mam zrobić, aby w menu pojawiały sie linki (tytuł) a po kliknięciu tresc otwierała się w innej komórce tabeli??
Jak narazie kombinuje z czymś takim:

Menu:

  1. <? 
  2. mysql_connect ("$host", "$dbuser", "$dbpass") or die ("BLAD!<br> Nie mozna polaczyc sie z baza danych! Sprawdx czy wpisane przez Ciebie dane 
    sa poprawne!"
    );
  3. mysql_select_db ("$dbname") or die ("BLAD!<br> Nie mozna odnalezdx bazy danych o nazwie $dbname");
  4.  
  5. $query = "SELECT * FROM podstrony ORDER BY id";
  6. $result = mysql_query($query);
  7. while($r = mysql_fetch_array($result)) {
  8. $nr = $r['id'];
  9. $tytul = $r['tytul'];
  10. echo " - <a href="index.php?strona=$nr">$tytul</a><BR>";
  11. }
  12. ?>



i Treść:

  1. <?
  2. if ($strona){
  3. $query = "SELECT * FROM podstrony WHERE id=$nr";
  4. $result = mysql_query($query);
  5. echo " - $tytul</a><BR>";
  6. }
  7. ?>



Proszę o pomoc smile.gif
Go to the top of the page
+Quote Post
szmerak
post 11.06.2007, 18:08:16
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

Ostrzeżenie: (0%)
-----


Nie wiem o co ci chodzi możesz troche jaśniej? Rkingsmiley.png
Go to the top of the page
+Quote Post
danielv13
post 11.06.2007, 18:23:46
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


Hmh.. jasniej??

Sprawa taka:

Baza danych
Tabela: podstrony a w niej id (primary), tytul, tresc...

Wczytuje menu (1 kod).
Co mam zrobić aby po kliknięciu w któryś link w 2 kodzie pojawiła się treść?
Go to the top of the page
+Quote Post
Void
post 12.06.2007, 06:32:36
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

Ostrzeżenie: (0%)
-----


Zmienne przekazywane w pasku adresu przechowywane są w tablicy _GET, odwołujesz się więc do nich przez $_GET['nazwa_zmiennej'] (chyba, że w konfiguracji php włączona jest opcja register_globals, wtedy można odwołać się bezpośrednio przez $nazwa_zmiennej, ale nie jest to dobra praktyka).
  1. <?php
  2. if ( isset($_GET['strona']) ){
  3. $query = 'SELECT * FROM podstrony WHERE id=' . $_GET['strona'] . ' LIMIT 1';
  4. $result = mysql_query($query);
  5.  
  6. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  7. // tutaj już normalnie wyświetlasz dane o podstronie: echo $row['tytul']; echo $row['tresc'] itp.
  8. }
  9. }
  10. ?>


Ten post edytował Void 12.06.2007, 06:33:14
Go to the top of the page
+Quote Post
danielv13
post 12.06.2007, 15:46:58
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


Nie działa sad.gif

Jak mam to wyświetlić?
Nic się nie pokazuje w treści podstrony...

//Edit: działa smile.gif <hurra> wielkie dzięki za pomoc Void!! smile.gif smile.gif

Mam jeszcze jedno pytanie...
Odnośnie usuwania podstrony.
Mam coś takiego:
1. Pokazuję wszystkie rekordy z tabeli, przy każdym mam edytuj (z nieszczęsnym id):
  1. <?php
  2. <a href="podstrony.php?numerek=$nr">Edytuj</a>
  3. ?>


2. Po kliknięciu...

  1. <?php
  2. if ( isset($_GET['numerek']) ){
  3. ?>

...Wyświetlam:
  1. <?php
  2. $query = 'SELECT * FROM podstrony WHERE id=' . $_GET['numerek'] . ' LIMIT 1' ;
  3. ?>

... i Pokazuję formularz edycji
  1. <?php
  2. echo<form name="form_edycji" method="post" action="podstrony.php?aa=edit">
  3. ?>


3. Klikam w submit i...
  1. <?php
  2. if ($aa=='edit') {
  3.  
  4. $stat = $_POST['status'];
  5. $data = date ("d-m-Y H:i");
  6. $tytul = $_POST['title'];
  7. $krotka = $_POST['small'];
  8. $trescd = $_POST['text'];
  9. $autor = $_POST['author'];
  10.  
  11. mysql_connect ("$host", "$dbuser", "$dbpass") or die ("ERROR - Connect to database fatiled - SAJAM CMS");
  12. mysql_select_db ("$dbname") or die ("ERROR - Database nod found - SAJAM CMS");
  13.  
  14. $query = "UPDATE podstrony SET status='$stat', date='$data', tytul='$tytul', small='$krotka', tresc='$trescd', autor='$autor' WHERE id=$id";
  15. $wynik = mysql_query ($query);
  16.  
  17. echo("<center> edytowano dodano dzial artykulow / newsow (ID ".mysql_insert_id().")
  18. </center> $data");
  19.  
  20. }
  21. ?>


Nie działa... Jak mogę zrobićm aby id który wybiorę gdzieś się zapisał, albo jak mogę go przesłać przez formularz po uprzednim wybraniu go? sadsmiley02.gif

Ten post edytował danielv13 12.06.2007, 14:12:19
Go to the top of the page
+Quote Post
Void
post 12.06.2007, 16:51:02
Post #6





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

Ostrzeżenie: (0%)
-----


Ech.. i znowu to samo winksmiley.jpg
  1. <?php
  2. if ($_GET['aa']=='edit') {
  3. ?>

zamiast
  1. <?php
  2. if ($aa=='edit') {
  3. ?>


Rozumiem, że formularz edycji masz umieszczony w tym samym skrypcie, co poniższe zapytanie:
  1. <?php
  2. $query = 'SELECT * FROM podstrony WHERE id=' . $_GET['numerek'] . ' LIMIT 1' ;
  3. ?>
?

Jeśli tak to możesz po prostu przesłać id jako kolejną zmienną w pasku adresu.

Cytat(danielv13)
... i Pokazuję formularz edycji

  1. <?php
  2. echo '<form name="form_edycji" method="post" action="podstrony.php?aa=edit&id=' . $_GET['numerek'] . '">';
  3. ?>


A w zapytaniu UPDATE pobierasz tą zmienną
  1. <?php
  2. $query = "UPDATE podstrony SET status='$stat', date='$data', tytul='$tytul', small='$krotka', tresc='$trescd', autor='$autor' WHERE id=" . $_GET['id'] . " LIMIT 1";
  3. ?>
Go to the top of the page
+Quote Post
danielv13
post 12.06.2007, 19:43:31
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.12.2006

Ostrzeżenie: (10%)
X----


O kurde działa biggrin.gif Dzięki mistrzu Void!! tongue.gif
Masz stałego klienta biggrin.gif
Pokarzę Ci potem moje "dzieło" haha.gif ...

Nie chcę nikogo krytykować, ale zobaczcie tutaj:

http://forum.webcity.pl/index.php?showtopic=4943

Napisałem go wczoraj o podobnej porze jak tu biggrin.gif Jest powalająca różnica smile.gif

Teraz zrobiłem wg. instrukcji:

  1. <?php
  2. if ($_GET['polecenie']=='usun') {
  3.  
  4. echo'<br><b>Usuwanie</b><BR><br>';
  5. echo '<table width="420" bgcolor="#00CCFF">';
  6.  
  7. mysql_connect ("$host", "$dbuser", "$dbpass") or die ("BLAD!");
  8. mysql_select_db ("$dbname") or die ("BLAD!");
  9.  
  10. $query = "SELECT * FROM podstrony ORDER BY id";
  11. $result = mysql_query($query);
  12. while($r = mysql_fetch_array($result)) {
  13. $id = $r['id'];
  14. $tytul = $r['tytul'];
  15. echo "<tr><td width="250"><div align="center">$tytul</td><td width="170"><a href="podstrony.php?usun=$id">Usuń</a></td></tr>";
  16. }
  17. echo'</table><br><br>';
  18. }
  19.  
  20. if (isset($_GET['usun'])) {
  21.  
  22. mysql_connect ("$host", "$dbuser", "$dbpass") or die ("BLAD!<br> Nie mozna polaczyc sie z baza danych! Sprawdx czy wpisane przez Ciebie dane 
    sa poprawne!"
    );
  23. mysql_select_db ("$dbname") or die ("BLAD!<br> Nie mozna odnalezdx bazy danych o nazwie $dbname");
  24.  
  25. $query = "DELTE FROM podstrony WHERE id=".$_GET['usun']."";
  26. $result = mysql_query ($query);
  27. echo'Usunięto!';
  28. }
  29. ?>


i nie chce usuwać sad.gif WHY?

Ten post edytował danielv13 12.06.2007, 18:02:07
Go to the top of the page
+Quote Post
strife
post 12.06.2007, 19:53:32
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $query = "DELTE FROM podstrony WHERE id=".$_GET['usun']."";
  3. $result = mysql_query ($query);
  4. ?>


Masz literówkę, nie ma czegoś takiego jak DELTE. Poza tym wykasuj te końcowe ciapki bo są niepotrzebne. No i na przyszłość pamiętaj, że jest coś takiego jak mysql_error" title="Zobacz w manualu PHP" target="_manual.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 22:56