Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Problem z UPDATE
BuncolPL
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Cześć !

Piszę sobie prosty skrypt tabeli piłkarskiej i mam problem z aktualizowaniem wyników do bazy. Skrypt składa się z dwóch plików

Pierwszy odpowiada za wyświetlanie informacji z bazy w polach formularzy.

  1. <form action="anglia.php" method="post">
  2. <table>
  3.  
  4. <?php
  5.  
  6. include('config.php');
  7.  
  8.  
  9.   try
  10.   {
  11.      $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.'', "$user", "$pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  12.      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  13.  
  14. //Drużyna ID=1      
  15.      $stmt = $pdo -> query('SELECT * FROM anglia WHERE ID=1');
  16.      foreach($stmt as $row)    
  17.      echo '<tr><td><input type="text" name="miejsce1" value="'.$row['miejsce'].'" style="width: 40px;" /> <td><input type="text" name="druzyna1" value="'.$row['druzyna'].'" /></td> <td><input type="text" name="mecze1" value="'.$row['mecze'].'" style="width: 40px;" /></td> <td><input type="text" name="punkty1" value="'.$row['punkty'].'" style="width: 40px;" /></td> <td><input type="text" name="bramki1" value="'.$row['bramki'].'" style="width: 40px;" /></td></tr><br />';                  
  18.  
  19.  
  20.      
  21.   }
  22.   catch(PDOException $e)
  23.   {
  24.      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  25.   }  
  26.  
  27. ?>
  28.  
  29. </table><br />
  30. <input type="submit" value="Edytuj" />
  31. </form>


Drugi z plików odpowiada za dopisywanie nowych wyników do bazy. Z nim mam właśnie problem, ponieważ nie dopisuje tylko wywala następujący błąd:

Połączenie nie mogło zostać utworzone: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'INTO `anglia` (`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`)VALUES( ''' at line 1

Kod tego pliku wygląda następująco:

  1. <?php
  2.  
  3. //Zapisywanie do bazy
  4. include('config.php');
  5.  
  6.  
  7.   try
  8.   {
  9.      $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.'', "$user", "$pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  10.      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.  
  12. {
  13. $_POST['miejsce1'] = $row['miejsce1'];
  14. $_POST['druzyna1'] = $row['druzyna1'];
  15. $_POST['mecze1'] = $row['mecze1'];
  16. $_POST['punkty1'] = $row['punkty1'];
  17. $_POST['bramki1'] = $row['bramki1'];
  18.  
  19.  
  20. $pdo -> exec('UPDATE INTO `anglia` (`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`)VALUES(
  21.                ''.$_POST['miejsce1'].'',
  22.                ''.$_POST['druzyna1'].'',
  23.                ''.$_POST['mecze1'].'',
  24.                ''.$_POST['punkty1'].'',
  25.                ''.$_POST['bramki1'].'')');
  26.    
  27. }
  28.      
  29.   }
  30.   catch(PDOException $e)
  31.   {
  32.      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  33.   }  
  34. ?>


Z góry dzięki za pomoc

Pozdrawiam
Marcin
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 24)
Maciekbjw
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

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


Witaj,
Cytat
Połączenie nie mogło zostać utworzone: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'INTO `anglia` (`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`)VALUES( ''' at line 1

Masz błąd w składni SQL (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Tak przy okazji, to powiedz mi, czemu służy zapis:


  1. <?php
  2. $_POST['miejsce1'] = $row['miejsce1'];
  3. $_POST['druzyna1'] = $row['druzyna1'];
  4. $_POST['mecze1'] = $row['mecze1'];
  5. $_POST['punkty1'] = $row['punkty1'];
  6. $_POST['bramki1'] = $row['bramki1'];
  7. ?>


Bo trochę nie rozumiem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

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





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Masz racje to jest źle, chciałem żeby wartości z value, dodawane były do bazy.

Wtedy powinno wyglądać to tak:

  1. <?php
  2. $_POST['miejsce1'] = $row['miejsce'];
  3. $_POST['druzyna1'] = $row['druzyna'];
  4. $_POST['mecze1'] = $row['mecze'];
  5. $_POST['punkty1'] = $row['punkty'];
  6. $_POST['bramki1'] = $row['bramki'];
  7. ?>


Ale niestety w tym przypadku również pojawiają się błędy. Poza tym nie wiem jak rozwiązać dodawanie wielu różnych drużyn, ponieważ przy wyświetlaniu nie ma problemu bo można dać WHERE ID=liczba to właśnie przy aktualizowaniu pojawią mi się schody.

Możecie coś poradzić, aby wykonać to jak najprościej
Go to the top of the page
+Quote Post
DREEMus
post
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


sprawdź kod formularza, którym dodajesz dane ... czy gdzieś nie ma " i ' ...
Go to the top of the page
+Quote Post
BuncolPL
post
Post #5





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


DREEMus możesz napisać jaśniej o co chodzi ? Mam tylko te dwa pliki i bazę danych, nic poza tym.
Go to the top of the page
+Quote Post
DREEMus
post
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


a spróbuj tak ...
  1. <?php
  2. $pdo -> exec('UPDATE INTO `anglia` (`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`) VALUES ("'.$_POST['miejsce1'].'", "'.$_POST['druzyna1'].'", "'.$_POST['mecze1'].'", "'.$_POST['punkty1'].'", "'.$_POST['bramki1'].'")');
  3. ?>


Ten post edytował DREEMus 26.03.2009, 02:18:33
Go to the top of the page
+Quote Post
BuncolPL
post
Post #7





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Dalej mam błąd:

Połączenie nie mogło zostać utworzone: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'INTO `anglia` (`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`) VALUES ("", ""' at line 1

Może ktoś coś poradzić ?
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




moze zadam glupie pytanie, ale co to jest "update into" ?
Go to the top of the page
+Quote Post
Maxik
post
Post #9





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Daj może print_r($_POST); bo wygląda jakby nie odbierał danych z formularza.
Go to the top of the page
+Quote Post
BuncolPL
post
Post #10





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Cytat
moze zadam glupie pytanie, ale co to jest "update into" ?


Dlatego, że już kombinowałem na wszystkie sposoby dopisując cokolwiek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
Daj może print_r($_POST)


Dałem to na początku pliku, który ma dodawać, ale teraz pojawia mi się błąd:

Array ( [miejsce1] => 4 [druzyna1] => Manchester City [mecze1] => 10 [punkty1] => 3 [bramki1] => 28-1 ) Połączenie nie mogło zostać utworzone: SQLSTATE[42000]: Syntax error or access violation: 1064 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 '(`miejsce`, `druzyna`, `mecze`, `punkty`, `bramki`)VALUES( '', ' at line 1
Go to the top of the page
+Quote Post
nospor
post
Post #11





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




Cytat
Dlatego, że już kombinowałem na wszystkie sposoby dopisując cokolwiek
mistrzu..... no ale nie ma czegos takiego jak update into...
jest insert into i tak ma byc.

A jak ci nie dzialalo insert into to robisz echo mysql_error(); i wiesz gdzie masz blad
Go to the top of the page
+Quote Post
BuncolPL
post
Post #12





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Cytat
mistrzu..... no ale nie ma czegos takiego jak update into...
jest insert into i tak ma byc.


Już wiem, że nie ma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) INSERT INTO działa, tylko problem w tym, że dodaje mi nowe rekordy a nie aktualizuje tego, który chce zmienić. Ja chce tylko je zaktualizować.
Go to the top of the page
+Quote Post
nospor
post
Post #13





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




kurcze....to zajrzyj do manuala i zobacz jak wyglada skladnia UPDATE bo teraz jestes daleki od poprawnosci....
Go to the top of the page
+Quote Post
BuncolPL
post
Post #14





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Cytat
kurcze....to zajrzyj do manuala i zobacz jak wyglada skladnia UPDATE bo teraz jestes daleki od poprawnosci....


No ok, ale dlaczego przy INSERT INTO wstawia mi puste komórki a nie pobiera tych z formularza ?
Go to the top of the page
+Quote Post
nospor
post
Post #15





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




no bo jesli robisz to tak:
  1. <?php
  2. $_POST['miejsce1'] = $row['miejsce1'];
  3. $_POST['druzyna1'] = $row['druzyna1'];
  4. $_POST['mecze1'] = $row['mecze1'];
  5. $_POST['punkty1'] = $row['punkty1'];
  6. $_POST['bramki1'] = $row['bramki1'];
  7. ?>

To nic dziwnego ze ci z forma nie pobiera.....

A jesli robisz inaczej to pokaz jak robisz
Go to the top of the page
+Quote Post
BuncolPL
post
Post #16





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Tamto zmieniłem, bo błąd ten zauważyłem zaraz po tym jak napisałem wątek:

Teraz zmieniłem składnie UPDATE, ale wyskakuje mi błąd:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/buncol/ftpl/tabele/anglia.php on line 20

Plik dodawania wygląda następująco:

  1. <?php
  2.  
  3. //Zapisywanie do bazy
  4. include('config.php');
  5.  
  6.  
  7.   try
  8.   {
  9.      $pdo = new PDO('mysql:host='.$host.';dbname='.$dbname.'', "$user", "$pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  10.      $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.  
  12. {
  13. $_POST['miejsce1'] = $row['miejsce'];
  14. $_POST['druzyna1'] = $row['druzyna'];
  15. $_POST['mecze1'] = $row['mecze'];
  16. $_POST['punkty1'] = $row['punkty'];
  17. $_POST['bramki1'] = $row['bramki'];
  18.  
  19.  
  20. $pdo -> exec("UPDATE `anglia` SET `miejsce` = '.$_POST['miejsce1'].',`druzyna` = '.$_POST['miejsce1'].',`mecze` = '.$_POST['mecze'].',`punkty` = '.$_POST['punkty1'].',`bramki` = 'bramki1' WHERE `id`='1'");
  21.  
  22. }
  23.      
  24.   }
  25.   catch(PDOException $e)
  26.   {
  27.      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  28.   }  
  29. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #17





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




o zgrozo.... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
no nie widzisz ze mieszasz juz kody?

  1. <?php
  2. $pdo -> exec("UPDATE `anglia` SET `miejsce` = '$_POST[miejsce1]',`druzyna` = '$_POST[miejsce1]',`mecze` = '$_POST[mecze]',`punkty` = '$_POST[punkty1]',`bramki` = 'bramki1' WHERE `id`='1'");
  3. ?>


no i znowu masz:
$_POST['miejsce1'] = $row['miejsce'];
$_POST['druzyna1'] = $row['druzyna'];
$_POST['mecze1'] = $row['mecze'];
$_POST['punkty1'] = $row['punkty'];
$_POST['bramki1'] = $row['bramki'];

przeciez dane masz miec z forma a nie z jakiego $row.... no mysl troche chlopie
Go to the top of the page
+Quote Post
BuncolPL
post
Post #18





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


nospor ale ja to powinno wyglądać ? Ja dopiero się uczę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) a teraz to już mam zupełny mętlik w głowie.
Go to the top of the page
+Quote Post
nospor
post
Post #19





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




no skoro dane idą ci z forma (z posta) to na grzyba dajesz to:
$_POST['miejsce1'] = $row['miejsce'];
$_POST['druzyna1'] = $row['druzyna'];
$_POST['mecze1'] = $row['mecze'];
$_POST['punkty1'] = $row['punkty'];
$_POST['bramki1'] = $row['bramki'];
?

$_POST jest automatycznie wypelnianiane danym z formularza, jesli takowy byl wyslany
Go to the top of the page
+Quote Post
BuncolPL
post
Post #20





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Usunąłem to, ale nadal mam tutaj problem:

  1. <?php
  2.  
  3. $pdo -> exec("UPDATE `anglia` SET `miejsce` = '.$_POST['miejsce'].',`druzyna` = '.$_POST['druzyna'].',`mecze` = '.$_POST['mecze'].',`punkty` = '.$_POST['punkty'].',`bramki` = '.$_POST['bramki'].' WHERE `id`='1'");
  4. ?>


Pojawia się błąd: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Ten post edytował BuncolPL 26.03.2009, 13:06:59
Go to the top of the page
+Quote Post
nospor
post
Post #21





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




kurde.... zaraz zamkne ci temat!
Przeciez dwa moje posty wyzej podalem ci poprawną wersje na ten kod php. nie marnuj naszego czasu!

  1. <?php
  2. $pdo -> exec("UPDATE `anglia` SET `miejsce` = '$_POST[miejsce1]',`druzyna` = '$_POST[miejsce1]',`mecze` = '$_POST[mecze]',`punkty` = '$_POST[punkty1]',`bramki` = '$_POST[bramki1]' WHERE `id`='1'");
  3. ?>


ps: ja juz na dzisiaj mam dosc tego tematu. bye, bye (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
BuncolPL
post
Post #22





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


nospor nie rozumie dlaczego się tak denerwujesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Coś co dla Ciebie jest oczywiste dla początkującego wcale nie musi. Zwróć uwagę, że to dział Przedszkole (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Poza tym i tak mam błąd składni: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

W tej linijce:

  1. <?php
  2.  
  3. $pdo -> exec("UPDATE `anglia` SET `miejsce` = '.$_POST['miejsce'].',`druzyna` = '.$_POST['druzyna'].',`mecze` = '.$_POST['mecze'].',`punkty` = '.$_POST['punkty'].',`bramki` = '.$_POST['bramki'].' WHERE `id`='1'");
  4.  
  5. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #23





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




jestes niesamowity. znowu uzyles swojego starego kodu zamiast mojego, ktory juz poraz drugi ci podalem

temat zamykam bo ewidentnie lejesz na nas i nasz czas mając w 4 literach to co ci podajemy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
w razie pytan i watpliwosci zapraszam na PW, bo moze nadal nie rozumiesz oco mi chodzi

edit: po rozmowie na PW i zrozumieniu bledu - otwieram
Go to the top of the page
+Quote Post
BuncolPL
post
Post #24





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 19.12.2008
Skąd: Poland

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


Dzięki nospor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Uwagi sobie wezmę do serca (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A jeszcze mam jedno pytanie.

W jaki sposób zabezpieczyć ten 2 plik odpowiedzialny za dodawanie, ponieważ jeśli go uruchomię z przeglądarki to zeruje mi wszystkie wyniki :/

Czy nie trzeba będzie połączyć ich w jeden ?

Ten post edytował BuncolPL 26.03.2009, 13:46:28
Go to the top of the page
+Quote Post
DREEMus
post
Post #25





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


A gdzie Ty widzisz problem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
PHP daje Ci wiele możliwości wykonania Twojego pytania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ja bym zrobił formularz jako index.php
dodawania nowych jako dodaj.php
i pobieranie oraz pokazanie jako pokaz.php

wtedy się nie pogubisz z tym wszystkim (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 20.12.2025 - 18:44