Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Niedzialajacy UPDATE
nevar
post 16.04.2006, 23:56:16
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Formularz do edycji

edytuj.php
  1. <?
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5. $wynik = mysql_query("select * from quiz where id=".$_GET['id']);
  6.  
  7. $pytanie = mysql_fetch_array($wynik);
  8.     print '<form action="update.php" method="POST">';
  9.         print '<font face="Arial" size="2">Pytanie:<textarea name="pyt" rows=5 cols=30 warp=phisical>'.$pytanie['pyt'].'</textarea><br>';
  10.         print '<font face="Arial" size="2">Odp a:<textarea name="a" rows=5 cols=30 warp=phisical>'.$pytanie['odpa'].'</textarea><br /></font>';
  11.         print '<font face="Arial" size="2">Odp b:<textarea name="b" rows=5 cols=30 warp=phisical>'.$pytanie['odpb'].'</textarea><br /></font>';
  12.         print '<font face="Arial" size="2">Odp c:<textarea name="c" rows=5 cols=30 warp=phisical>'.$pytanie['odpc'].'</textarea><br /></font>';
  13.      print '<font face="Arial" size="2">Odp poprawna:<textarea name="praw">'.$pytanie['odppraw'].'</textarea><br /></font>';
  14.      print '<input type="hidden" name="id" value='.$_GET['id'].'><input type="submit" value="edytuj"></form>';
  15.       
  16. ?>


i skrypt kóry powinien wykonywać to UPDATE

update.php
  1. <?php
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5.  
  6. mysql_query("update quiz set pyt='".$_POST['pyt']."',
  7.     odpa='".$_POST['a']."',
  8.     odpb='".$_POST['b']."',
  9.     odpc='".$_POST['c']."'
  10.     where id=".$_POST['id']);
  11.   
  12. ?>


Co w tym jest nie tak bo nie chce mi zmieniać tych danych??

Ten post edytował NuLL 17.04.2006, 00:13:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
LBO
post 17.04.2006, 00:56:14
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


hmmmm, według mnie zapytanie skonstruowane poprawnie (ja osobiscie wolę SQL'owe komendy pisać duzymi literami... tak, żeby się lpiej czytało - Tobie też tak radzę)

napisz, czy mysql_query" title="Zobacz w manualu php" target="_manual, wyplówa jakiś błąd.
Go to the top of the page
+Quote Post
TomASS
post 17.04.2006, 08:14:33
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Jak mysql_fetch_array() nie burzy się, że mu brakuje tablicy to znaczy, że zapytanie jednak coś zwraca - problem pewnie leży po stonie mysql_fetch_array - przynajmniej wszystko na to wskazuje. Zobacz ten temat pkt 1, a na wypadek gdyby mysql_fetch_array zwracało jednak jakiś błąd, ale zapomniałeś napisać to zobacz na pkt 2

Ten post edytował TomASS 17.04.2006, 08:16:17


--------------------
Go to the top of the page
+Quote Post
nevar
post 17.04.2006, 18:21:54
Post #4





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Zrobiłem tak:

  1. <?php
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5.  
  6. $update = mysql_query("update quiz set pyt='.$_POST['pyt'].',
  7. odpa='.$_POST['a'].',
  8. odpb='.$_POST['b'].',
  9. odpc='.$_POST['c'].',
  10. where id=".$_POST['id'];
  11.  
  12. if($update) {
  13.  echo '<p>Zapisano do bazy</p>';
  14. } else {
  15.  echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>';
  16. };
  17. };
  18.  
  19. ?>


ale nic mi nie wyświetla...
Go to the top of the page
+Quote Post
LBO
post 17.04.2006, 18:26:30
Post #5





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


a co masz w baza.php? Może tam gdzieś się skrypt wywala?
Go to the top of the page
+Quote Post
nevar
post 17.04.2006, 18:32:05
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


w baza.php mam:

  1. <?
  2. $mysql_host = "localhost";
  3. $mysql_user = "user";
  4. $mysql_haslo = "haslo";
  5. $mysql_baza = "baza";
  6. ?>


Dlaczego ten update nie działa??
Nie mam już pojęcia co to może być...

Ten post edytował nevar 17.04.2006, 21:22:04
Go to the top of the page
+Quote Post
siemakuba
post 17.04.2006, 21:20:01
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


sprawdź kazde zapytanie:

  1. <?php
  2.  
  3.  
  4. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  5.  
  6. echo 'mysql_connect error: '.mysql_error().'<br>';
  7.  
  8.  
  9. $db = mysql_select_db($mysql_baza);
  10.  
  11. echo 'mysql_select_db error: '.mysql_error().'<br>';
  12.  
  13.  
  14. mysql_query( _TWOJE_ZAPYTANIE_ );
  15.  
  16. echo 'mysql_query error: '.mysql_error().'<br>';
  17. echo 'Zmieniono: '.mysql_affected_rows().'<br>';  
  18.  
  19. ?>


ostatnia linia powie ci ile wierszy w tabeli zostalo zmienione przez zapytane. Jezeli wynik jest 0 a wczesniej nie bylo bledow, znakiem to, ze nie masz w tabeli wierszy spelaniajacych warunek z WHERE zapytania.

i jeszcze z manuala: mysql_affected_rows" title="Zobacz w manualu php" target="_manual

Cytat
Notatka:  Podczas operacji UPDATE, MySQL nie aktualizuje kolumn w których nowa wartość jest identyczna z poprzednią. Możliwe jest zatem, że zwrócona przez mysql_affected_rows() liczba nie będzie odpowiadać liczbie wierszy pasujących do zapytania, ale tych, które zostały faktycznie zmienione.


pozdr.
Go to the top of the page
+Quote Post
TomASS
post 17.04.2006, 21:45:34
Post #8





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


connect połącz z die tak:

  1. <?php
  2.  
  3. mysql_connect ($mysql_host, $mysql_user, $mysql_haslo) or die ("Nie masz połączenie do bazy danych");
  4. ?>


--------------------
Go to the top of the page
+Quote Post
nevar
post 17.04.2006, 23:40:35
Post #9





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Dalej nic z tego... sad.gif

W całości to wygląda tak:

Najpierw wyświetla mi wszystkie pytania, każde z przyciskiem edytuj i usuń:
  1. <?php
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5. $wynik = mysql_query("select * from quiz");
  6.  
  7.  
  8. if (mysql_num_rows ($wynik)>0)
  9. {
  10. $i=1;
  11. while($pytanie = mysql_fetch_array($wynik))
  12. {
  13. print '<font face="Arial" size="3">'.$i.'.</font>';
  14. print '<font face="Arial" size="3">'.$pytanie['pyt'].'</font><br>';
  15. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="a" />'.$pytanie['odpa'].'<br></font>';
  16. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="b" />'.$pytanie['odpb'].'<br></font>';
  17. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="c" />'.$pytanie['odpc'].'<br></font>';
  18. print '<font face="Arial" size="3" color="green">Poprawna odpowiedź to:'.$pytanie['odppraw'].'</font><br>';
  19.  print '<input type="button" value="Edytuj" onClick="window.open('edytuj.php?id_pyt='.$pytanie['id'].'''nazwa').focus(); return false" />';
  20. print '<input type="button" value="Usuń" onClick="if(window.confirm('Czy na pewno usunąć ?')){window.location='usun.php?id_pyt='.$pytanie['id'].'';}">';
  21. print '<br><hr>';
  22. $i++;
  23. }
  24. }
  25.  
  26. ?>


Po kliknieciu na edytuj otwiera się okno edycji:
  1. <?php
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5. $wynik = mysql_query("select * from quiz where id=".$_GET['id_pyt']);
  6.  
  7. $pytanie = mysql_fetch_array($wynik);
  8. print '<form action="update.php" method="POST">';
  9. print '<font face="Arial" size="2">Pytanie:<textarea name="pyt" rows=5 cols=30 warp=phisical>'.$pytanie['pyt'].'</textarea><br>';
  10. print '<font face="Arial" size="2">Odp a:<textarea name="a" rows=5 cols=30 warp=phisical>'.$pytanie['odpa'].'</textarea><br /></font>';
  11. print '<font face="Arial" size="2">Odp b:<textarea name="b" rows=5 cols=30 warp=phisical>'.$pytanie['odpb'].'</textarea><br /></font>';
  12. print '<font face="Arial" size="2">Odp c:<textarea name="c" rows=5 cols=30 warp=phisical>'.$pytanie['odpc'].'</textarea><br /></font>';
  13.  print '<font face="Arial" size="2">Odp poprawna:<textarea name="praw">'.$pytanie['odppraw'].'</textarea><br /></font>';
  14.  print '<input type="hidden" name="id" value='.$_GET['id_pyt'].'>';
  15.  print '<input type="submit" value="edytuj"></form>';
  16.  
  17. ?>


Zmieniam co potrzebuję klikam na edytuj i powinien się wykonać skrypt:
  1. <?
  2. include ("baza.php");
  3.  
  4. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo) or die ("Nie masz połączenie do bazy danych");
  5.  
  6. echo 'mysql_connect error: '.mysql_error().'<br>';
  7.  
  8. $db = mysql_select_db($mysql_baza);
  9.  
  10. echo 'mysql_select_db error: '.mysql_error().'<br>';
  11.  
  12. mysql_query("update quiz set pyt='.$_POST['pyt'].',
  13. odpa='.$_POST['a'].',
  14. odpb='.$_POST['b'].',
  15. odpc='.$_POST['c'].'
  16. where id=".$_POST['id_pyt']);
  17.  
  18. echo 'mysql_query error: '.mysql_error().'<br>';
  19. echo 'Zmieniono: '.mysql_affected_rows().'<br>'; 
  20.  
  21. ?>


dodałem żeby mi wyrzucał błędy ale nic się nie dzieje:( puste okno, nic nie wyświetla...
HELP! sad.gif
Go to the top of the page
+Quote Post
LBO
post 18.04.2006, 00:01:47
Post #10





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


hmmm, to jest bardzo dziwne - puste okno mówisz? Wg mnie powinny sie wyswietlić przynajmniej te teksty z echo" title="Zobacz w manualu php" target="_manual. Coś w stylu:
Kod
mysql_connect error: <br>
mysql_select_db error: <br>
mysql_query error: <br>
Zmieniono: <br>


Ten post edytował LBO 18.04.2006, 00:30:19
Go to the top of the page
+Quote Post
TomASS
post 18.04.2006, 00:27:11
Post #11





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Serwer masz na localhoście czy na zewnętrznym tak samo?
Może wystarczy w pliku php.ini (najczęście w katalogu C:\Windows) zmienić:
Cytat
error_reporting = E_ALL


--------------------
Go to the top of the page
+Quote Post
nevar
post 18.04.2006, 09:04:34
Post #12





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Serwer jest zewnętrzny
Go to the top of the page
+Quote Post
siemakuba
post 18.04.2006, 09:55:14
Post #13





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


W FORM masz action na update.php
Rozumiem, że skrypt updejtujący masz właśnie w tym pliku?

Sorki, to troche dziwne pytanie, ale to najprostszy i zarazem najciezszy do wychwycenia bug :)
Patrzysz na plik i nie widzisz ze to nie ten na ktory myslisz ze patrzysz :) zdarza sie :)

Aha, moze rzuc jakis dump SQLa coby mozna bylo to jakos calosciowo przetestowac.

pozdr.
Go to the top of the page
+Quote Post
nevar
post 18.04.2006, 10:51:51
Post #14





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Sprawdziłem, nazwy plików się zgadzają
Go to the top of the page
+Quote Post
nospor
post 18.04.2006, 10:58:49
Post #15





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




  1. <?php
  2. mysql_query("update quiz set pyt='.$_POST['pyt'].',
  3. odpa='.$_POST['a'].',
  4. odpb='.$_POST['b'].',
  5. odpc='.$_POST['c'].'
  6. where id=".$_POST['id_pyt']);
  7. ?>
Po zobaczeniu tego kawalka kodu, wiecej juz mi sie nie chce czytac winksmiley.jpg
polecam dokładną lekturę:
http://pl.php.net/manual/pl/language.types.string.php
http://pl.php.net/manual/pl/language.operators.string.php


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

"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
misiek172
post 18.04.2006, 11:37:48
Post #16





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


o kurcze... najlepiej sparwdź to w ten sposób, że włoncz PHPmyAdmina i wejdź do tej bazy i poprostu zmień coś i on ci wygeneruje skrypt zmiany, skopiuj go do dokumentu i uzupelnij poprostu zmiennymi, musi działać! albo poprostu zamis jak masz odpa='.$_POST['a'].' daj odpa=\".$_POST['a'].\"


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
siemakuba
post 18.04.2006, 11:47:29
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Cytat(nospor @ 2006-04-18 09:58:49)
  1. <?php
  2. mysql_query("update quiz set pyt='.$_POST['pyt'].',
  3. odpa='.$_POST['a'].',
  4. odpb='.$_POST['b'].',
  5. odpc='.$_POST['c'].'
  6. where id=".$_POST['id_pyt']);
  7. ?>
Po zobaczeniu tego kawalka kodu, wiecej juz mi sie nie chce czytac ;)

@nospor: tez na poczatku rzucilo mi sie to w oczy i wszystko wydawalo sie jasne, ale wydaje mi sie ze problem lezy gdzie indziej. To zapytanie gdzies tam w postach przewija sie w roznej formie, jednak w pierwszym poscie jest OK. To chyba "niedociagniecie" przy kopiowaniu go w kolejnych postach.
Go to the top of the page
+Quote Post
kszychu
post 18.04.2006, 11:48:51
Post #18





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Misiek, chłopie nie mąć! to z zamianą ' na \" to bzdura totalna. Przeczytaj najpierw powyższe posty a dopiero zabieraj głos.
Poza tym poziom dyskusji, jaki się wyklarował upoważnia mnie do przeniesienia tego do Przedszkola.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:07