Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Rekord nie zostaje dodany do bazy danych, phpmyadmin
forestwow
post 17.06.2012, 12:16:46
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.06.2012

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


Witam, mam taki problem. Jak widac na poniższym przykładzie, jeśli mysql_num_rows wynosi 0, czyi takiego wpisu nie ma w BD to i tak nie zostaje on dodany, mimo braku jakiegokolwiek błedu, a samo polecenie sql jest poprawne na 100%. Update natomiast działa bez problemu. Jakies pomysły, podpowiedzi ? Nie zabardzo wiem dlaczego nie dodaje mi nowego rekordu...

  1. $spr = mysql_query("SELECT `Suma_punktow` FROM `punkty_karne` WHERE `IDOsoba` = $idk[IDOsoba]");
  2. if(mysql_num_rows($spr)==0)
  3. {
  4. mysql_query("INSERT INTO `punkty_karne` (`IDOsoba`,`Suma_punktow`) VALUES ('$idk[IDOsoba]','$_POST[punktykarne]'");
  5.  
  6. }
  7. else
  8. {
  9.  
  10. $pkt = mysql_fetch_array($spr);
  11.  
  12. $pkt2 = $pkt['Suma_punktow'];
  13. $pkt2=$pkt2+$_POST['punktykarne'];
  14. mysql_query("UPDATE `punkty_karne` SET `Suma_punktow`=$pkt2 WHERE `IDOsoba`=$idk[IDOsoba]");
  15.  
  16. }
  17.  
  18.  
  19.  
Go to the top of the page
+Quote Post
CuteOne
post 17.06.2012, 12:32:02
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


1.
  1. $spr = mysql_query("SELECT `Suma_punktow` FROM `punkty_karne` WHERE `IDOsoba` = '{$idk['IDOsoba']}'") or die(mysql_error());
  2.  
  3. if(!mysql_num_rows($spr))
  4. {
  5. mysql_query("INSERT INTO `punkty_karne` (`IDOsoba`,`Suma_punktow`) VALUES ('{$idk['IDOsoba']}','{$_POST['punktykarne']}'") or die(mysql_error());
  6.  
  7. }
  8. else
  9. {
  10.  
  11. $pkt = mysql_fetch_array($spr);
  12.  
  13. $pkt2 = $pkt['Suma_punktow'];
  14. $pkt2=$pkt2+$_POST['punktykarne'];
  15. mysql_query("UPDATE `punkty_karne` SET `Suma_punktow`=$pkt2 WHERE `IDOsoba`= '{$idk['IDOsoba']}'") or die(mysql_error());
  16. }


2. poczytaj o sql injection bo $_POST['punktykarne'] nie powinien się znaleźć w zapytaniu
Go to the top of the page
+Quote Post
forestwow
post 17.06.2012, 12:42:20
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.06.2012

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


@Problem rozwiązany, w "insert into" zabrakło mi nawiasu... w kazdym badz razie dzieki za pomoc.



Mimo wszystko, chyba jednak jest jakis bład w składni sql...

"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 '' at line 1"

odnosi się to do "INSERT INTO...."

Ten post edytował forestwow 17.06.2012, 12:54:32
Go to the top of the page
+Quote Post
radziopoke
post 18.06.2012, 10:05:03
Post #4





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


To co podał CuteOne musi zadziałać. A jeżeli nie przekopiowałeś tego tylko próbowałeś poprawić to zapewne nie zauważyłeś że przy zmiennej $_POST[punktykarne] brakuje dla nazwy punktykarne apostrofów.
A tak na przyszłość jak mi coś jest nie tak z zapytaniem to je po prostu wyświetlam na ekranie np:
Kod
$zapytanie="INSERT INTO `punkty_karne` (`IDOsoba`,`Suma_punktow`) VALUES ('$idk[IDOsoba]','$_POST[punktykarne]'";
echo $zapytanie;
$spr = mysql_query($zapytanie) or die(mysql_error());

i od razu zauważysz czego brakuje w zapytaniu smile.gif
Ale mam jeszcze jedno drobne pytanie czy IDOsoba i Suma_punktow w mysql to typ INT jeżeli tak to po co zmienne $idk[IDOsoba] i $_POST[punktykarne] w apostrof wkładasz?
Go to the top of the page
+Quote Post
xdev
post 19.06.2012, 22:06:50
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 3
Dołączył: 17.09.2011

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


Ściągnij sobie navicat lite a z tym potworkiem (phpMA) to nawet się nie baw. Przecież to jest przedpotopowa technologia, pełno w tym błędów.

Ten post edytował xdev 19.06.2012, 22:07:23
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 - 09:01