Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Aktualizacja rekordu używając Formy oraz ID
webfreak
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


Witam!

Raczkuję dopierow PHP, ale na tyle żeby się uczyć.

Otóż mam problem gdy chcę edytować rekord w bazie używając do tego ID wyświetla mi " udano ", ale tak nie jest.... Oto mój kod

  1.  
  2. <?php
  3.  
  4. $host="localhost"; // Host name
  5. $username="user"; // Mysql username
  6. $password="pass"; // Mysql password
  7. $db_name="nazwa"; // 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. $sql="UPDATE $tbl_name
  19. SET title='$_POST[title]', body='$_POST[body]'
  20. WHERE id='$_GET[id]'";
  21. $result=mysql_query($sql);
  22.  
  23. // if successfully deleted
  24. if($result){
  25. echo "Edited Successfully";
  26. echo "<BR>";
  27. echo "<a href='http://36i6.co.uk'>Back to main page</a>";
  28. }
  29.  
  30. else {
  31. }
  32.  
  33. // close connection
  34.  
  35. ?>
  36.  



a to forma

  1.  
  2. <form action="edit.php" method="post">
  3. <div class="box">
  4. <h1>Add News :</h1>
  5. <label><span>Title</span>
  6. <input type="text" class="input_text" name="title" id="name" value="<? echo $row['title']?>"/>
  7. </label>
  8. <!-- <label><span>Date</span> -->
  9. <input type="hidden" class="input_text" name="date" id="email"/>
  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>
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
mit2
post
Post #2





Grupa: Zarejestrowani
Postów: 160
Pomógł: 5
Dołączył: 4.08.2010

Ostrzeżenie: (40%)
XX---


problem jak sie nie myle jest w dodawaniu tego newsa czy co tam masz

  1. $sql="UPDATE $tbl_name SET title='$_POST[title]', body='$_POST[body]' WHERE id='$_GET[id]'";
  2. $result=mysql_query($sql);


Zrób takie coś i powinno dzialać
  1. $title = $_POST[title];
  2. $body = $_POST[body];
  3. $id = $_GET[id];
  4. $sql="UPDATE $tbl_name SET title='$title', body='$body' WHERE id='$id'";
  5. $result=mysql_query($sql);

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





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1.  
  2.  
  3. $result=mysql_query($sql) or die(mysql_error());
  4.  


zobaczymy czy coś krzyknie
Go to the top of the page
+Quote Post
webfreak
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


niestety nic z tego nie działa (IMG:style_emoticons/default/sad.gif)
Nadal pokazuje ze dodane poprawnie ale news sie nie zmienia


http://36i6.co.uk

mam takze w polu value dla title w ormie dla edycji zeby pokazywalo czyli echo zawartosc tabeli title ale nie pokazuje tak samo nie wiem dlaczego
Go to the top of the page
+Quote Post
kadlub
post
Post #5





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


a zrób
echo $_GET['id'];
zobaczymy czy coś w nim jest
a i skąd wysyłasz te $_GET['id'] do tego pliku

Ten post edytował kadlub 30.03.2011, 18:22:10
Go to the top of the page
+Quote Post
webfreak
post
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


Nie wiem czy o to chodziło, ale normalnie edytując ID 24 forma łapie edycję Id 24... Pisze że zmieniło, ale neistety nic nie zmieniło

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title'='ada', 'body'='ada' WHERE 'id'=''' at line 1 wiem juz ze nie łapie ID.

Skad wiem ?


Kliknolem edit wpisalem do title ada do body ada dalem zeby dodalo i pokazalo mi ten blad i title jest ada body ada ale nie ma id
Go to the top of the page
+Quote Post
Daiquiri
post
Post #7





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Pytanie czy w zmiennej $id z zapytania $sql jest jakaś wartość, a z tego co widzę to raczej nie (IMG:style_emoticons/default/smile.gif) .

Tak jak sugerował Ci już kadlub, gdzieś w okolicach $id=$_GET['id']; zrób echo $_GET['id']; Zwykle taką zmienną przekazuje się w adresie.
Powód edycji: [Daiquiri]:
Go to the top of the page
+Quote Post
kadlub
post
Post #8





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


Cytat(webfreak @ 30.03.2011, 19:29:18 ) *
Nie wiem czy o to chodziło, ale normalnie edytując ID 24 forma łapie edycję Id 24... Pisze że zmieniło, ale neistety nic nie zmieniło

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title'='ada', 'body'='ada' WHERE 'id'=''' at line 1 wiem juz ze nie łapie ID.

Skad wiem ?


Kliknolem edit wpisalem do title ada do body ada dalem zeby dodalo i pokazalo mi ten blad i title jest ada body ada ale nie ma id



czyli nic nie masz w tym GET pewnie jak wpiszesz na sztywno to dodoa
Go to the top of the page
+Quote Post
webfreak
post
Post #9





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


Próbowałem różnych kombinacji

w pliki edit.php do którego jest " post " formy


żeby łapało ID mam linię

  1.  
  2. $id=$_GET['id'];
  3.  


w sql mam

  1.  
  2. $sql="UPDATE $tbl_name SET title='$title', body='$body' WHERE id='$id'";
Go to the top of the page
+Quote Post
kadlub
post
Post #10





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


nie odpowiedziałeś na moje pytanie skąd wysyłasz tego geta (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
webfreak
post
Post #11





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


ska wysyłam ? Jak pisałe mw początku tematu raczkuje dopiero więc prosiłbym jasniej jak krowie na rowie (IMG:style_emoticons/default/smile.gif) jesli chodzi z jakiego pliku to z edit.php i z delete.php (IMG:style_emoticons/default/tongue.gif) Jesli ktos chce sie smiac z mojego podejscia do czegos bez znajomosci tematu to prosze bardzo (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
wujekkk
post
Post #12





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2010

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


Cytat
// get value of id that sent from address bar
$id=$_GET['id'];


Pisze jak byk, że wartość $id jest pobierana z paska adresu.

Troszke się pogubiłem, ale spróbuj czegoś takiego:

  1. <form action="edit.php?id=( tutaj wpisujesz wartość id )" method="post">
  2. <div class="box">
  3. <h1>Add News :</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. <label><span>Body</span>
  10. <textarea class="message" name="body" id="feedback"></textarea>
  11. <input type="submit" class="button" value="Add" />
  12. </label>
  13. </div>
  14. </form>
Go to the top of the page
+Quote Post
webfreak
post
Post #13





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


wlasnie podsunoles mi pewien pomysl (IMG:style_emoticons/default/smile.gif) Wyprubuje go najpierw (IMG:style_emoticons/default/smile.gif)

  1. <form action="edit.php?id=24" method="post">
  2. <div class="box">
  3. <h1>Add News :</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. <label><span>Body</span>
  10. <textarea class="message" name="body" id="feedback"></textarea>
  11. <input type="submit" class="button" value="Add" />
  12. </label>
  13. </div>
  14. </form>



dziala jak marzenie ale jak uzyje

zamiast id=24 dam <? echo $row['id']; ?> juz nie dziala
Go to the top of the page
+Quote Post
wujekkk
post
Post #14





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2010

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


Cytat(webfreak @ 30.03.2011, 19:50:33 ) *
wlasnie podsunoles mi pewien pomysl (IMG:style_emoticons/default/smile.gif) Wyprubuje go najpierw (IMG:style_emoticons/default/smile.gif)

dziala jak marzenie ale jak uzyje

zamiast id=24 dam <? echo $row['id']; ?> juz nie dziala




No to podsune Ci kolejny pomysł:

PLIK cos.php
  1. <?php
  2. $id=24;
  3.  
  4.  
  5. echo "<a href=cos2.php?id=".$id.">Klik</a>"
  6.  
  7. ?>


PLIK cos2.php
  1. <?php
  2. $id=$_GET['id'];
  3. echo $id;
  4. ?>
Go to the top of the page
+Quote Post
webfreak
post
Post #15





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


nie wiem czy to ma jakieś znaczenie ale do Updare używam tego samego kodu c do usuwania tylko ze zmienionym $sql

Ten post edytował webfreak 30.03.2011, 19:09:27
Go to the top of the page
+Quote Post
bastard13
post
Post #16





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Dodaj sobie do formularza:
  1. <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />

i odczytuj id za pomocą tablicy $_POST, bo takie przesyłanie części danych w getem, a części postem, to niezbyt dobre rozwiązanie.

Zapytanie możesz zapisać tak:
  1. sql='UPDATE '.$tbl_name.' SET title="'.$_POST['title'].'", body="'.$_POST['body'].'" WHERE id="'.$_POST['id'].'"';

lub
  1. sql="UPDATE $tbl_name SET title='{$_POST['title']}', body='{$_POST['body']}' WHERE id='{$_POST['id']}'";

tak czy inaczej daj echo $sql, żeby zobaczyć co siedzi w zapytaniu,
jeżeli id nadal będzie puste to dodaj var_dump($_POST), żeby zobaczyć, czy dane zostały przesłane.
Go to the top of the page
+Quote Post
webfreak
post
Post #17





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


to co mi wyszło

UPDATE news SET title='adam', body='adam ' WHERE id=''array(4) { ["title"]=> string(4) "adam" ["date"]=> string(0) "" ["id"]=> string(0) "" ["body"]=> string(6) "adam " }
Go to the top of the page
+Quote Post
bastard13
post
Post #18





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


A dodaj sobie przed tym formularzem <?php var_dump($row); ?> i napisz co ci wyrzuca, bo z tego co napisałeś, to widać, że brakuje parametru id.
Pokaż też w jaki sposób pobierasz dane do $row.
Go to the top of the page
+Quote Post
webfreak
post
Post #19





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 29.03.2011
Skąd: Londyn

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


co wiem do tej pory to to że forma nie dostaje żadnego ID już robię to o co poprosiłeś

daje mi NULL


o to ci chodziło (IMG:style_emoticons/default/questionmark.gif) ?


  1. <?
  2. while($row=mysql_fetch_array($result)){
  3. ?>


Ten post edytował webfreak 30.03.2011, 19:25:48
Go to the top of the page
+Quote Post
bastard13
post
Post #20





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


A dodałeś to pole hidden, co napisałem ci wcześniej.
var_dump($row) zwraca null? To dlaczego w formularzu masz <?php echo $row['title']; ?> ?
a jak nie chodziło ci o $row, to napisz w jaki sposób ładujesz do tej zmiennej dane.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.09.2025 - 17:27