Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Problem z UPDATE
BuncolPL
post 26.03.2009, 00:53:48
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
Maciekbjw
post 26.03.2009, 01:21:03
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 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 tongue.gif

Pozdrawiam


--------------------
Masz swoje mieszkanie i chcesz je wynająć? Sprawdź ofertę Zarzadządzanie Najmem

WRONA.IT - pozycjonowanie stron
www.ecyklopedia.pl
Go to the top of the page
+Quote Post
BuncolPL
post 26.03.2009, 01:35:09
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 26.03.2009, 01:43:26
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 ' ...


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
BuncolPL
post 26.03.2009, 01:54:51
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 26.03.2009, 02:16:45
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


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
BuncolPL
post 26.03.2009, 11:33:41
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 26.03.2009, 11:35:44
Post #8





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




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


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

"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
Maxik
post 26.03.2009, 11:37:54
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.


--------------------
Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/
Go to the top of the page
+Quote Post
BuncolPL
post 26.03.2009, 11:57:56
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 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 26.03.2009, 12:00:33
Post #11





Grupa: Moderatorzy
Postów: 36 557
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


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

"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
BuncolPL
post 26.03.2009, 12:05:01
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 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 26.03.2009, 12:07:13
Post #13





Grupa: Moderatorzy
Postów: 36 557
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....


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

"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
BuncolPL
post 26.03.2009, 12:09:20
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 26.03.2009, 12:12:23
Post #15





Grupa: Moderatorzy
Postów: 36 557
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


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

"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
BuncolPL
post 26.03.2009, 12:19:32
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 26.03.2009, 12:22:32
Post #17





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




o zgrozo.... 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


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

"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
BuncolPL
post 26.03.2009, 12:47:48
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ę 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 26.03.2009, 12:52:47
Post #19





Grupa: Moderatorzy
Postów: 36 557
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


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

"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
BuncolPL
post 26.03.2009, 13:03:03
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

2 Stron V   1 2 >
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: 21.06.2025 - 01:56