Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Menu i podstrony
Forum PHP.pl > Forum > Przedszkole
danielv13
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
szmerak
Nie wiem o co ci chodzi możesz troche jaśniej? Rkingsmiley.png
danielv13
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ść?
Void
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. ?>
danielv13
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
Void
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. ?>
danielv13
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?
strife
  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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.