Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wstawienie do formularza danych z bazy
Forum PHP.pl > Forum > Przedszkole
Bdevty
Mam pytanie. Piszę system newsów i przy edycji mam problem. Jak zrobić coś takiego żeby do formularza z tematem wstawiło obecny temat newsa czyli
odczytany z bazy. Próbowałem z textarea i input ale nic z tego. Jak można to zrobić ?
Shili
Jak odczytujesz wartości z bazy? Podziel się może aktualnie napisanym kodem?

Przy wyświetleniu tej otrzymanej wartości poprzez echo coś widać?
Jeśli tak, to tytuł jeśli jest w inpucie trzeba przypisać do atrybutu value="", albo wstawić między znaczniki textarea, jeśli z jakichś przyczyn chcesz textareę.
Jednak bez kodu niewiele więcej da się powiedzieć.
Bdevty
Cały kod wygląda tak:

  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['admin'])) {
  5. header ("Location: admin.html");
  6. }
  7.  
  8. else {
  9.  
  10. mysql_connect ('localhost','root','mentormiszcz1e');
  11. mysql_select_db('system');
  12. include ("main.php");
  13.  
  14. switch ($_GET['mod']) {
  15. default: // Default
  16.  
  17. echo 'Yo, ' . $_SESSION['admin'];
  18.  
  19. break;
  20.  
  21. case 'addnews': // Add news
  22.  
  23. if (empty($_POST['subject']) && empty($_POST['news'])) {
  24. echo '<div id="use">
  25. <form action="admin.php?mod=addnews" method="post">
  26. <div id="form">
  27. <label>Subject: <input type="text" name="subject" /></label>
  28. <textarea name="news" rows="15" cols="40"></textarea>
  29. <input type="submit" value="Add" />
  30. </div>
  31. </form>
  32. </div>';
  33. }
  34.  
  35. else {
  36.  
  37. $date= date("d.m.y");
  38. $news= "INSERT INTO news (`subject`,`content`,`author`,`date`)
  39. VALUES ('".trim($_POST['subject'])."','".trim($_POST['news'])."'
  40. ,'".$_SESSION['admin']."','$date');";
  41. mysql_query ($news);
  42. echo 'News has been added';
  43.  
  44. }
  45.  
  46. break;
  47.  
  48. case 'manage': //Manage news
  49.  
  50.  
  51.  
  52. $show= "SELECT subject,date,author,id FROM news
  53. WHERE author='".$_SESSION['admin']."';";
  54. $showa= mysql_query($show);
  55.  
  56. while ($showall= mysql_fetch_assoc($showa)) {
  57.  
  58. echo '<form action="admin.php?mod=manage" method="post">
  59. <div id="checkbox">
  60. <input type="checkbox" name="select" value="" />'
  61.  .'<A href="admin.php?mod=editnews">' . $showall['subject']
  62. . '</a>'. $showall['date'] . $showall['author'] 
  63. . '</div>' . '</form>';
  64.  
  65. }
  66.  
  67. echo '<form action="admin.php?mod=manage" method="post">
  68. <div id="submit">
  69. <select name="sel">
  70. <option value="Delete">Delete</option>
  71. </select>
  72. <input type="hidden" name="select" />
  73. <input type="submit" value="OK" />
  74. </div>
  75. </form>';
  76.  
  77. if (count($_POST['select'])!== 0) {
  78.  
  79. $delete= "DELETE FROM news WHERE `id`= '".$showall['author']."';";
  80. mysql_query($delete);
  81. mysql_query("OPTIMIZE TABLE `news`");
  82. echo 'Selected news has been deleted';
  83.  
  84. }
  85.  
  86. break;
  87.  
  88. case 'editnews': // Edit news
  89.  
  90. if (empty($_POST['editsubject']) && empty($_POST['editnews'])) {
  91.  
  92.  
  93. $id= $showall['subject'];
  94. echo '<div id="use">
  95. <form action="admin.php?mod=editnews" method="post">
  96. <div id="form">' .
  97. '<label>Subject: <textarea name="editsubject">' 
  98.  . $id . '</textarea>' . '</label>' .
  99. '<textarea name="editnews" rows="15" cols="40">'. '</textarea>'
  100. . '<input type="submit" value="Add" />'
  101. . '</div>' . '</form>' . '</div>';
  102.  
  103. }
  104.  
  105. break;
  106.  
  107.  
  108.  
  109. } //end switch
  110.  
  111. } // end else
  112.  
  113. ?>
Shili
Jeśli dobrze rozumiem, to pobieranie wyników z bazy masz tylko tam, gdzie mod jest manage. Gdy zamiast manage jest edit (czyli pewnie to, o co Ci chodzi) to w ogóle nie pobierasz nic z bazy. A skoro nie masz zapytania które zostanie pobrane nic dziwnego że zmienne są puste.

W tym casie również musisz mieć zapytanie i również musisz przypisać wynik tego zapytania do zmiennej.
Bdevty
Ok chodzi, ale mam jeszcze problem jeden. Jak ma wstawić do formularza temat newsa na który kliknąłem? Tzn jak takie zapytanie skonstruować żeby wstawiało ten temat newsa na który kliknąłem?
Shili
Przesyłasz dane przez get?
jeśli masz powiedzmy w adresie: strona.php?mod=edit&id=id_newsa
  1. <?php
  2. $id_newsa = (int)mysql_real_escape_string($_GET['id'];
  3. $query = 'SELECT subject FROM news WHERE id='.$id_newsa.'';
  4. ?>
Bdevty
Ok. Gdzie teraz mam wstawić tą zmienną id żeby przekazywała to id tzn do którego odnośnika- do tego co jest w modzie manage czy co?
Shili
Noż kurcze, pokombinuj. A jak pokombinujesz trochę sam i coś Ci nie będzie wychodzić, to daj znać jak to robisz (z kodem) i spytaj. Na logikę pewnie do tego, który ma w sobie mod=editnews, nie?
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.