Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Jak dorobić "Usuń", "Edytuj"
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
Witam. Napisałem sobie prosty system, bym mógł dodawać jako admin newsy z poziomu WWW. Newsy zapisują się do bazy:

id_news - ID Newsa
temat - Treść tematu
data_dodania - Data i czas
kto_dodal - Admin dodający
tresc - Treść Newsa


Wszystko działa, zrobiłem sobie formularz, wypełniam ,wysyłam, wszystko działa elegancko. Ale jak mogę zrobić, bym kliknął "Edytuj" i dany News edytował z poziomu WWW bądź usuwał go "Usuń". Jak mogę pobrać ID tego z poziomu WWW?

Jak dorobić do tego paginację? Np. 4 Newsy na stronę? I reszta na następnej.
lukaskolista
Do edycji potrzebne bedzie pobranie listy newsow z ich id, przekazanie ich w linkach do edycji newsow. Na stronie edycji pobierasz newsa wedlug przekazanego id i wczytujesz dane do pol formularza. O paginacji jest pelno w sieci, poszukaj.
GoldeNx3
no dobra. pobiore te id z bazy ale potem jak wygenerować te linki i edytowac? mógłbyś jakoś naprowadzić bardziej?
Daiquiri
Generujesz linki np. w postaci index.php?edytuj=1 (gdzie 1 to numer ID newsa). Po kliknięciu sprawdzasz czy zmienna $_GET['edytuj'] została ustawiona (czy ktoś kliknął w link), jeżeli tak to: pobierasz wszystkie dane z bazy o tym newsie, do formularza (takiego jak przy dodawaniu) wczytujesz te dane np. wyświetlając je w value. Otrzymasz już wypleniony formularz, który pozostaje Ci edytować. Procedura zapisu to zwyczajny UPDATE danych w bazie.
GoldeNx3
Mam to zrobić za pomocą
Kod
<form action="news_edit.php?id=id_newsa" method="get">
? A co ma być w pliku news_edit.php?
Daiquiri
Ajj nie. Tworzysz normalnego linka
  1. <a href="index.php?edit=2">Edytuj newsa 2 </a>
i na stronie index.php obsługujesz wywołanie $_GET['edit']. W pliku index.php stawiasz np. warunek:
  1. if (isset($_GET['edit'])) { // jeżeli kliknięto w link
  2. // tutaj pobierasz dane z bazy - czyli dane o newsie z ID takim jak w zmiennej $_GET['edit'];
  3. // tutaj uzupełniasz formularz
  4. // itd. :)
  5. }
webfreak
edit_form.php
  1. <form action="edit.php?id=<? echo $_GET['id']; ?>" method="post">
  2. <div class="box">
  3. <h1>Add News :<? echo $_GET['id']; ?></h1>
  4. <label><span>Title</span>
  5. <input type="text" class="input_text" name="title" id="name" value="<? echo $row['title']?>"/>
  6. </label>
  7. <!-- <label><span>Date</span> -->
  8. <input type="hidden" class="input_text" name="date" id="email"/>
  9. <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
  10. <label><span>Body</span>
  11. <textarea class="message" name="body" id="feedback"></textarea>
  12. <input type="submit" class="button" value="Add" />
  13. </label>
  14. </div>
  15. </form>


edit.php

  1.  
  2. <?php
  3.  
  4. $host="localhost"; // Host name
  5. $username="web230"; // Mysql username
  6. $password="y3ba"; // Mysql password
  7. $db_name="web230"; // Database name
  8. $tbl_name="news"; // Table name
  9.  
  10. // Connect to server and select databse.
  11. mysql_connect("$host", "$username", "$password")or die("cannot connect");
  12. mysql_select_db("$db_name")or die("cannot select DB");
  13.  
  14. // get value of id that sent from address bar
  15. $id=$_GET['id'];
  16.  
  17. // Delete data in mysql from row that has this id
  18.  
  19.  
  20. $sql='UPDATE '.$tbl_name.' SET title="'.$_POST['title'].'", body="'.$_POST['body'].'" WHERE id="'.$_POST['id'].'"';
  21.  
  22.  
  23. $result=mysql_query($sql) or die(mysql_error());
  24.  
  25.  
  26. // if successfully deleted
  27. if($result){
  28. echo "Edited Successfully";
  29. echo "<BR>";
  30. echo "<a href='http://36i6.co.uk'>Back to main page</a>";
  31. }
  32.  
  33. else {
  34. }
  35.  
  36. // close connection
  37.  
  38. ?>
  39.  



przycisk edit
  1. <a href="/edit_form.php?id=<? echo $row['id']; ?>">edit</a>



delete.php
  1. <?php
  2.  
  3. $host="localhost"; // Host name
  4. $username="web230"; // Mysql username
  5. $password="y3ba"; // Mysql password
  6. $db_name="web230"; // Database name
  7. $tbl_name="news"; // Table name
  8.  
  9. // Connect to server and select databse.
  10. mysql_connect("$host", "$username", "$password")or die("cannot connect");
  11. mysql_select_db("$db_name")or die("cannot select DB");
  12.  
  13. // get value of id that sent from address bar
  14. $id=$_GET['id'];
  15.  
  16. // Delete data in mysql from row that has this id
  17. $sql="DELETE FROM $tbl_name WHERE id='$id'";
  18. $result=mysql_query($sql);
  19.  
  20. // if successfully deleted
  21. if($result){
  22. echo "Deleted Successfully";
  23. echo "<BR>";
  24. echo "<a href='http://36i6.co.uk/admin/panel.php'>Back to main page</a>";
  25. }
  26.  
  27. else {
  28. echo "ERROR";
  29. }
  30.  
  31. // close connection
  32.  
  33. ?>


przycisk delete
  1.  
  2. <a href="/delete.php?id=<? echo $row['id']; ?>">delete</a>
  3.  


Prosta Paginacja

GoldeNx3
No dobra, a czemu moje nie działa:

  1. <?php
  2.  
  3. mysql_connect("host", "user", "password")
  4. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  5.  
  6. mysql_select_db("database")
  7. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  8.  
  9. $id = $_GET['id'];
  10.  
  11. $result = mysql_query("SELECT temat,kto_dodal,tresc FROM news WHERE id_news=$id") or die(mysql_error());
  12. $row = mysql_fetch_array($result);
  13.  
  14. $temat = $row['temat'];
  15. $tresc = $row['tresc'];
  16. $autor = $row['kto_dodal'];
  17.  
  18. if(empty($_POST['submit']))
  19. {
  20. if($_SESSION['login'] == $autor)
  21. {
  22. echo "<form method=\"post\">";
  23. //echo "<input type=\"hidden\" name=\"id\" value=\"$id\" />";
  24. echo "Temat:<br><input name=\"temat\" type=\"text\" value=\"$temat\" width=\"100px\"/><br>";
  25. echo "Tresc:<br><textarea name=\"tresc\" cols=\"40\" rows=\"20\">$tresc</textarea><br><br>";
  26. echo "<input type=\"submit\" name=\"submit\" value=\"Zmien\" />";
  27. }
  28. else echo "Nie mozesz edytowac, nie Ty dodales!";
  29. }
  30.  
  31. elseif(!empty($_POST['temat']) && !empty($_POST['tresc']))
  32. {
  33. $temat2 = $_POST['temat'];
  34. $tresc2 = $_POST['tresc'];
  35.  
  36.  
  37. $sql='UPDATE news SET temat="$temat2", tresc="$tresc2", kto_dodal="$autor" WHERE id_news="$id"';
  38. $result2=mysql_query($sql) or die(mysql_error());
  39.  
  40.  
  41. if($result2)
  42. {
  43. echo "<br>Edited Successfully";
  44. }
  45.  
  46. else
  47. {
  48. }
  49. }
  50.  
  51.  
  52.  
  53. ?>


Gdy wchodzę na link strona.pl/sklep/admin/news_edit.php?id=nr_newsa

Gdy kliknę "edytuj", to pisze, że z edytowało, ale wpisu nie zmienia, czemu?


@@EDIT:

Udało się, string w bazie trzeba podać pojedynczym cudzysłowem ; D
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.