Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: DIV do wyświetlenia danych z bazy.
Forum PHP.pl > Forum > PHP
strugi


W divie z id="notatka" chciałbym umieścić treść notatki z bazy danych, która jest w tej samej bazie i tej samej tabeli, co reszta danych. Otóż chciałbym zrobić tak, żeby div="notatka" służył do dwóch lub więcej (o ile coś wymyślę) rzeczy, mianowicie:

1. Po kliknięciu w numer lub temat notatki chcę, aby tekst tej notatki pojawił się w div="notatka".
2. Po wybraniu kategorii, np. niemiecki, chciałbym, aby pojawiła się lista w div="notatka", której przedmiotem jest tylko niemiecki.
3. Sprawa wygląda tak, że chciałbym, aby dajmy notatka z id = 14, była również dostępna pod adresem "localhost/?=14" lub "localhost/notatka.php?=14".

Poszukuję informacji na temat zrobienia czegoś takiego.
Uriziel01
Hmmm widzę tutaj dwie drogi, albo pokazujesz jakikolwiek kod który ty napisałeś i na którym możemy się oprzeć lub też podaje numer konta na który możesz przelać wynagrodzenie wink.gif
strugi
index.php:

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  3. <link rel="stylesheet" href="styl.css">
  4. </head>
  5. <body>
  6. <center>
  7. <img src="obrazki/dupshot.png" width="400" height="83"> <!-- logo -->
  8. <br>
  9. <div id="content">
  10. <div class="left">
  11. <div id="szukaj"></div>
  12.  
  13. </div>
  14. <div class="right"><br>
  15. <div class="rb">
  16. <?php
  17. require "polaczenie.php";
  18. ?>
  19. <br>
  20. </div>
  21. <br>
  22. <div class="rb">
  23. asd
  24. </div>
  25. <br>
  26. <br>
  27. <div class="rb">
  28. <table class="table" id="table-gen" cellspacing="0" cellpadding="0">
  29. <tr class="rowa">
  30. <td class="col1 cell"><b>nr</b></td>
  31. <td class="col2 cell"><b>nazwa</b></td>
  32. <td class="col3 cell"><b>język</b></td>
  33. <td class="col4 cell"><b>data</b></td>
  34. <td class="col5 cell"><b>notatka</b></td>
  35. </tr>
  36. <?php
  37. connection();
  38. $wynik = mysql_query("SELECT * FROM test")
  39. or die('Błąd zapytania');
  40. if(mysql_num_rows($wynik) > 0) {
  41. while($r = mysql_fetch_assoc($wynik)) {
  42. echo "<tr class=rowa>";
  43. echo "<td class=col1 cell width=30px>".$r['id']."</td>";
  44. echo "<td class=col2 cell width=150px>".$r['temat']."</td>";
  45. echo "<td class=col3 cell width=40px>".$r['jezyk']."</td>";
  46. echo "<td class=col4 cell width=13px><center><img src=obrazki/icon_info.gif width=13px height=13px title=\"".$r['data']."\"></center></td>";
  47. echo "<td class=col5 cell width=13px><center><img src=obrazki/icon_hash.gif width=13px height=13px>|ASDASD|</center></td>";
  48. echo "</tr>";
  49. }
  50. }
  51. ?>
  52. </table>
  53. </div>
  54. </center>
  55. </body>


Dodam, iż fajnie byłoby zrobić tak, aby po kliknięciu w icon_hash.gif notatka pojawiła mi się w div="notatka"

polaczenie.php:

  1. <?php
  2. /******************************************************
  3. * connection.php
  4. * konfiguracja połączenia z bazą danych
  5. ******************************************************/
  6.  
  7. function connection() {
  8. // serwer
  9. $mysql_server = "localhost";
  10. // admin
  11. $mysql_pass = "";
  12. $mysql_admin = "root";
  13. // nazwa baza
  14. $mysql_db = "baza";
  15. // nawiązujemy połączenie z serwerem MySQL
  16. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  17. or die('Brak połączenia z serwerem MySQL.');
  18. // łączymy się z bazą danych
  19. @mysql_select_db($mysql_db)
  20. or die('Błąd wyboru bazy danych.');
  21. }
  22.  
  23. ?>


G4rcU
fachowcem w PHP nie jestem, ale zdązyłem sobie zakodować, ze na etapie "tworzenia" nie powinno się uzywać @mysql_, bo ta "małpa" przed mysql słuzy do tłumienia komunikatów błędów (które mogą duzo pomóc w przypadku błędów w zapytaniach/połączeniu)


zamiast:
  1. if(mysql_num_rows($wynik) > 0) {
  2. while($r = mysql_fetch_assoc($wynik)) {
  3. echo "<tr class=rowa>";
  4. echo "<td class=col1 cell width=30px>".$r['id']."</td>";
  5. echo "<td class=col2 cell width=150px>".$r['temat']."</td>";
  6. echo "<td class=col3 cell width=40px>".$r['jezyk']."</td>";
  7. echo "<td class=col4 cell width=13px><center><img src=obrazki/icon_info.gif width=13px height=13px title=\"".$r['data']."\"></center></td>";
  8. echo "<td class=col5 cell width=13px><center><img src=obrazki/icon_hash.gif width=13px height=13px>|ASDASD|</center></td>";
  9. echo "</tr>";
  10. }
  11. }

mozesz:
  1. <?php if(mysql_num_rows($wynik) > 0):
  2. while($r = mysql_fetch_assoc($wynik)):
  3. ?>
  4. <tr class=rowa>
  5. <td class=col1 cell width=30px><?php echo $r['id'] ?></td>
  6. <td class=col2 cell width=150px><?php echo $r['temat'] ?></td>
  7. <td class=col3 cell width=40px><?php echo $r['jezyk'] ?></td>
  8. <td class=col4 cell width=13px><center><img src=obrazki/icon_info.gif width=13px height=13px title=<?php echo $r['data'] ?></center></td>
  9. <td class=col5 cell width=13px><center><img src=obrazki/icon_hash.gif width=13px height=13px>|ASDASD|</center></td>
  10. </tr>
  11. <?php endwhile; endif; ?>


ponadto:
  1. echo '<tr class=rowa>';

jest szybsze niz:
  1. echo "<tr class=rowa>";

jeśli masz tylko html do "wyplucia", bo php przy pojedyńczym cudzysłowiu nie sprawdza czy w środku znajdują się jakieś zmienne


a co do kodu:
  1. <?php if(mysql_num_rows($wynik) > 0):
  2. while($r = mysql_fetch_assoc($wynik)):
  3. ?>
  4. <tr class=rowa>
  5. <td class=col1 cell width=30px><?php echo $r['id'] ?></td>
  6. <td class=col2 cell width=150px><?php echo $r['temat'] ?></td>
  7. <td class=col3 cell width=40px><?php echo $r['jezyk'] ?></td>
  8. <td class=col4 cell width=13px><center><img src=obrazki/icon_info.gif width=13px height=13px title=<?php echo $r['data'] ?></center></td>
  9. <td class=col5 cell width=13px><center><a href="localhost/notatka.php?notkaid=<?php echo $r['id']; ?>"<img src=obrazki/icon_hash.gif width=13px height=13px>|ASDASD|</a></center></td>
  10. </tr>
  11. <?php endwhile; endif; ?>


i w samym div np.:
  1. <div ="notatka">
  2. <?php if( isset($_GET['notkaid']) && is_numeric($_GET['notkaid']) )
  3.  
  4. connection();
  5. $sql = 'SELECT * FROM test WHERE id='.$_GET['notkaid'];
  6. $res = mysql_query($sql);
  7. $dat = mysql_fetch_assoc($res);
  8. if(mysql_num_rows($res) >0) echo $dat['notatka'];
  9.  
  10. ?>
  11. </div>


nie podałeś jak wygląda tabela, więc i odpowiedź taka wydumana "na kolanie"
strugi
Tabela:
ID|temat|jezyk|data|notatka

Zastanawiam się, czy przypadkiem źle mnie nie zrozumiałeś. Owszem, napisałem chaotycznie, ale jest to do zrozumienia tongue.gif

Może w tej tabelce zrobić tak, że ID będzie do wysłania postem do pliku (którego nie mam) - notatka.php ?

////

Trochę namotałem i zrobiłem taką linijkę:

  1. echo "<td class=col5 cell width=13px><center><form action=notatka.php method=post><input type=hidden name=notatka value=\"".$r['id']."\" /><a href=\"java script:this.form.submit();\"><a href=\"java script:zmien('notatka.php', 'tekstnotatki')\"><img src=obrazki/icon_info.gif width=13px height=13px ></a></a></form></center></td>";


Jednak nie mam pojęcia jak zrobić do tego plik notatka.php, który wyświetli mi notatkę w divie "tekstnotatki", która w bazie jest znana pod id pobranym z tego formularza.
G4rcU
przeciez Ci napisałem jak to zrobić

  1. <td class=col5 cell width=13px><center><a href="localhost/notatka.php?notkaid=<?php echo $r['id']; ?>"><img src=obrazki/icon_hash.gif width=13px height=13px>|ASDASD|</a></center></td>
tu jest link, który "wybiera" notatkę z bazy o podanym ID


a w kodzie:
  1. <div ="notatka">
  2. <?php if( isset($_GET['notkaid']) && is_numeric($_GET['notkaid']) )
  3.  
  4. connection();
  5. $sql = 'SELECT notatka FROM test WHERE id='.$_GET['notkaid'];
  6. $res = mysql_query($sql);
  7. $dat = mysql_fetch_assoc($res);
  8. if(mysql_num_rows($res) >0) echo $dat['notatka'];
  9.  
  10. ?>
  11. </div>

sprawdzasz, czy zmienna notkaid, przekazywana w adresie strony, jest ustawiona (i czy jest liczbą) - jeśli tak, to pobiera dane z bazy i wyświetla w div
strugi
Ajj, przepraszam, pomyłka.
Twój kod działa dobrze smile.gif
Dziękuję serdecznie.
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.