Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP - MySQL] Edycja newsów
Asmox
post
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Tworzyć newsy jest łatwo - ale edytować już trudno. Chciałbym do swojego panelu administracyjnego dodać taką możliwość. W jaki sposób....
1. Mając listę tematów (generowaną automatycznie) chciałbym, aby po wybraniu jakiegoś, do pól edycji zostały wrzucone dane.
Przykład: Wybieramy z listy news pt. PHP, a wtedy w polu z tekstem ukazuje się treść newsa, w polu z tematem jego temat itd...
2. Klikając przycisk usunąć cały news (który byłby załadowany w sposób z punktu 1)
3. I jeszcze żeby newsy automatycznie cofały się o 1 (żeby nie było braków w indeksach po usunięciu jakiegoś newsa)

Ten post edytował Asmox 29.01.2009, 22:19:47


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no a masz jakiekolwiek pojecie o ajax?
- nie? To sie poducz, bez tego nie zrobisz tego tematu.Obczaj oco chodzi, zrob przykladowe zadania i zajmij sie za swoje
- tak? To w czym problem? Pokaz kod co zrobiles i co ci nie dziala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
KCG
post
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


1. W <input> argument value, lub w polach tekstowych pomiędzy <textarea> i </textarea>.
2. DELETE FROM `tabela` WHERE `id`=$id.
3. Takich rzeczy chyba się nie robi worriedsmiley.gif To tak żeby baza ładnie wyglądała?
Zwłaszcza po 2 pierwszych punktach widać, że masz nikłe pojęcie, więc warto jeszcze się poduczyć zamiast brać od razu za swoje rzeczy smile.gif


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
Asmox
post
Post #4





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


angrysmiley.gif angrysmiley.gif angrysmiley.gif Dobrze bez AJAX
Cytat
1. W <input> argument value, lub w polach tekstowych pomiędzy <textarea> i </textarea>.
2. DELETE FROM `tabela` WHERE `id`=$id.

Ja wiem takie rzeczy, ale jak je przywołać? To znaczy jak mam napisać to pole select, że jak je kliknę, to php zacznie robić odpowiednie funkcje. Myślę, że nauczyłem się dostatecznie wiele, skoro doszedłem do tego momentu, że przyda się możliwość edycji newsów.
Kod
no a masz jakiekolwiek pojecie o ajax?
- nie? To sie poducz, bez tego nie zrobisz tego tematu.Obczaj oco chodzi, zrob przykladowe zadania i zajmij sie za swoje
- tak? To w czym problem? Pokaz kod co zrobiles i co ci nie dziala

Tak naprawdę to dowiedziałem się co to jest od pewnego moda... Po przeczytaniu o tym na wikipedii pomyślałem, że chyba się pomylił, no ale niech mu będzie...
Pokazać ci mój kod? Proszę bardzo:
Kod
<select name="lista">
<?php  shownews("lista");?>
</select>

Fragment funkcji shownews
  1. <?php
  2. case "lista":                                
  3. while($row = mysql_fetch_row($result)){      
  4.  echo("<option>$row[4]</option>");          
  5. }                                            
  6. break;
  7. ?>


Ten post edytował Asmox 29.01.2009, 22:32:36


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Pokazać ci mój kod? Proszę bardzo:
Ale tu nie ma nic o ajax. Ja mowilem o kodzie ajax bys pokazal smile.gif

Cytat
Po przeczytaniu o tym na wikipedii pomyślałem, że chyba się pomylił,
Zamiast tylko przeczytac, wykonaj tez pare praktycznych kodow smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Asmox
post
Post #6





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Powiem ci tak: Dla mnie to żaden ajax, bo on nie tyczy się w ogóle PHP (poza jakimś XAJAX i Tigermouse). Chodzi mi po prostu o to, żeby to o co mi chodzi odbywało się bez przechodzenia na inne strony. Mam na razie pewien pomysł, ale nie wiem zbytnio jak napisać do tego kod.
Tabelę edycji wypisywałby sam php, przy okazji dołączając do tego co ma być wpisane w nich. W atrybucie value byłaby funkcja dolacztresc($pole)
Wtedy nastąpiłoby pobieranie danych i w każdym polu pokazywałyby się dane:
  1. <?php
  2. function dolacztresc($pole=0, $news="zaden"){
  3. if ($news!="zaden") {
  4. //odczytanie pola i sprawdzenie odpowiednika w bazie danych ($pole=1 to ID, $pole=2 to data wpisu itd...)
  5. return $tekst
  6. }
  7. }
  8. ?>

Ale nie wiem jak zrobić, aby po kliknięciu jakiejś opcji inputa select tak się stało mellow.gif

Ten post edytował Asmox 30.01.2009, 12:13:34


--------------------
Go to the top of the page
+Quote Post
KCG
post
Post #7





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Nie wnikając w Twoją (nie)wiedzę, bo chyba nikt nie chce Cię zniechęcać, to wydaję mi się, że pojęcia o ajax'ie nie masz. Tworzysz funkcje w js, które wysyłają dane do odpowiedniego skryptu i je odbierają. Jeśli potrafisz zrobić, to co piszesz w PHP to zostaje Ci tylko wywołanie tych funkcji przez js. Użyj obiektu XMLHttpRequest.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
siatkarzyna
post
Post #8





Grupa: Zarejestrowani
Postów: 85
Pomógł: 4
Dołączył: 1.07.2008

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


Ja stworzyłem sobie taki prosty skrypt dodawani, edytowania, usuwania wiadomości tytuł i treść. Może ci się przydać

  1. <?php
  2.  
  3. // Dodawanie nowego newsa
  4.  
  5. if ($_POST['wysli']) {
  6.  
  7. $tytul = trim($_POST['tytul']);
  8. $wiadomosc = trim($_POST['wiadomosc']);
  9.  
  10.  
  11. $zapytanie = "INSERT INTO news (data, godzina, tytul, wiadomosc) VALUES (CURDATE(), CURTIME(), '$tytul', '$wiadomosc')";
  12. $wykonaj = mysql_query($zapytanie) or die (mysql_error());
  13.  
  14.  
  15. }
  16.  
  17. // Usuwanie newsa
  18.  
  19. if ($_GET['akcja']=='usun') {
  20.  
  21.    $id_do_usuniecia = $_GET['id'];
  22.    
  23.    // $id_do_usuniecia powinniśmy również sprawdzić. URL można zmanipulować, np.:
  24.    // ?akcja=usun&id=1 or 1=1
  25.  
  26.    $zapytanie ="DELETE FROM news WHERE id=$id_do_usuniecia";
  27.    $wynik = mysql_query($zapytanie) or die ('Nie usunięto produktu, blad: ' . mysql_error());
  28.    
  29.    }
  30.    
  31. // Edycja newsa aktualizacja do bazy
  32.  
  33. if ($_POST['edytuj2']) {
  34.  
  35.    $zapytanie = "UPDATE `news`  SET `tytul` = '$_POST[tytul]', `wiadomosc` = '$_POST[wiadomosc]' WHERE id ='$_POST[id]'";
  36.    $wykonaj = mysql_query($zapytanie) or die (mysql_error());
  37.    }
  38.    
  39. // Edycja newsa wyciagniecie tytulu i tresci
  40.  
  41. if ($_GET['akcja']=='edytuj') {
  42.  
  43.    $id_do_edycji = $_GET['id'];
  44.    $zapytanie = "SELECT * FROM news WHERE id =$id_do_edycji ";
  45.    $wynik = mysql_query($zapytanie) or die (mysql_error());
  46.    
  47.    while ($rekord = mysql_fetch_assoc($wynik)) {
  48.    
  49.    $tytul = $rekord[tytul];
  50.    $tresc = $rekord[wiadomosc];
  51.    }
  52.    }
  53.  
  54. ?>
  55. <!-- Formularz -->
  56. <form action="<?php echo $_SERVER['PHP_SELF'];  ?>" method="post">
  57. <table>
  58.    <tr>
  59.        <td>Tytul <input type="text" name="tytul" size="40" value="<?php echo $tytul; ?>"></td>
  60.    </tr>
  61.    <tr>
  62.        <td>
  63.            <textarea cols="10" name="wiadomosc" width="100%">
  64.                <?php echo $tresc; ?>    
  65.            </textarea>
  66.        </td>
  67.    </tr>
  68.    <tr>
  69.        <td>
  70.        <?php
  71.        
  72.            // Jesli jest akacja edutuj to wyswietla przycisk do uakualnienia newsa "edytuj2"
  73.            
  74.            if ($_GET['akcja']=='edytuj') {
  75.        ?>
  76.        <input type="hidden" name="id" value="<?php echo $id_do_edycji; ?>">
  77.        <input type="submit" name="edytuj2" value="edytuj">
  78.        <?php
  79.        
  80.            // Jesli akcja edytuj nie istnieje to wyswietlany jest przycisk "wysli" do wstawienia nowego newsa
  81.            
  82.            } else {
  83.        ?>
  84.            <input type="submit" name="wysli" value="wysli">
  85.        <?php } ?>
  86.        </td>
  87.    </tr>
  88. </table>
  89. </form>
  90.  
  91. <!-- Tu wypisuje wszytkie newsy  -->
  92. <?php  
  93. $zapytanie = "SELECT * FROM news ORDER BY id DESC";
  94. $wynik = mysql_query($zapytanie) or die (mysql_error());
  95. ?>
  96. <table>
  97.    <tr>
  98.        <td>id</td>
  99.        <td>Tytul</td>
  100.        <td>Data</td>
  101.        <td>Godzina</td>
  102.        <td>-</td>
  103.        <td>-</td>
  104.    </tr>
  105. <?php
  106. while ($rekord = mysql_fetch_assoc($wynik)) {
  107. ?>
  108.    <tr>
  109.        <td><?php echo $rekord[id]; ?></td>
  110.        <td><?php echo $rekord[tytul]; ?></td>
  111.        <td><?php echo $rekord[data]; ?></td>
  112.        <td><?php echo $rekord[godzina]; ?></td>
  113.        <!-- Edytuj  -->
  114.        <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id'];?>">Edytuj</a></td>
  115.        <!-- Usun  -->
  116.        <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=usun&id=<?php echo $rekord['id'];?>">Usun</a></td>
  117.    </tr>
  118. <?php
  119. }
  120. ?>
  121. </table>


--------------------
Space Studio
Go to the top of the page
+Quote Post
Asmox
post
Post #9





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


No i przydał się! Dzięki Tobie wpadłem na pomysł wykorzystania przycisków submit to edycji i usuwania newsów. Jeszcze zrobiłem parę funkcji, które sprawdzają, co zostało przekazane metodą post. Jak chcesz to mogę podać kod, jeśli cię to interesuje. Zresztą tylko ty tak naprawdę mi pomogłeś w tym temacie.


--------------------
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 Aktualny czas: 21.08.2025 - 07:43