Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Mysql problem z przesyłem danych?
szaq00
post
Post #1





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

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


Witam mam problem z kodem niestety na stronie wyświetla mi i nie mam pomysłu co jest grane :

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



  1.  
  2. <?php
  3.  
  4. $id = $_GET['id'];
  5.  
  6. $zajety = mysql_fetch_array(mysql_query("select count(*) as blad from zadania_aktywne where id_wykonawcy = '".$Player->user."'"));
  7. if(empty($zajety)) {
  8. $losowanie1 = "SELECT * FROM wylosowane_zadania_krotkie WHERE nr = $id";
  9. $resu1 = mysql_query($losowanie1);
  10. while ($re1 = mysql_fetch_array($resu1))
  11. {
  12. $czas = unix_timestamp() + 3600 * $re1['czas'];
  13. mysql_query("insert into zadania_aktywne (id_wykonawcy, od, do, wynagrodzenie, poziom, km, mapa, czas, czas_h) select '".$player->user."','".$re1['od']."','".$re1['do']."','".$re1['cena']."','".$re1['poziom']."','".$re1['km']."','".$re1['mapa']."', ".$czas.",'".$re1['czas_h']."'");
  14.  
  15. }
  16.  
  17.  
  18. } else {
  19.  
  20. $dup = mysql_query("SELECT * FROM zadania_aktywne WHERE id_wykonawcy=".$Player->user) or die(mysql_error());
  21.  
  22. if(($dup['czas'] - $player->uend) >= (3600* $dup['czas_h'])){
  23. $time = date("H:i:s",($dup['czas'] - $player->uend) - (3600* $dup['czas_h']));
  24. } else{
  25. $time = date("00:i:s",($dup['czas'] - $player->uend) - (3600* $dup['czas_h']));
  26. }
  27. header("Refresh: ".($dup['czas'] - $player->uend)."; ?a=europa" );
  28. echo "
  29.  
  30. Aktualnie jestes w trasie pozostalo:<span id='timer'>$time</span>
  31. <script type='text/javascript'>liczCzas('timer',".($dup['czas'] - $player->uend - 2).");</script><br /><br />
  32. ";
  33. echo $dup['mapa'];
  34.  
  35.  
  36. }
  37.  
  38.  
  39.  
  40. ?>
  41.  
  42.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nospor
post
Post #2





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




Wyświetl sobie wszystkie zapytania które generujesz a dowiesz się co jest grane (IMG:style_emoticons/default/smile.gif)

np. to:
echo "SELECT * FROM zadania_aktywne WHERE id_wykonawcy=".$Player->user;
Go to the top of the page
+Quote Post
szaq00
post
Post #3





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

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


naprawione chodziło o $Player->user mam jeszcze takie pytanie jak tutaj dac aby zastąpic linijkę 6-7 aby mi wyszukało np czy juz taki rekord jest w bazie i aby nie dodawało kolejnego ale aby się strona długo nie ładowała przy wyszukiwaniu.

Ten post edytował szaq00 21.11.2012, 09:59:10
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Cytat
naprawione chodziło o $Player->user
Ba, mi tego nie musisz mówić. Ja to wiedziałem. Chodziło o to, byś ty się o tym dowiedział

Cytat
mam jeszcze takie pytanie jak tutaj dac aby zastąpic linijkę 6-7 aby mi wyszukało np czy juz taki rekord jest w bazie i aby nie dodawało kolejnego
Select count() zawsze zwróci ci jeden rekord wiec o to:
if(empty($zajety)) {
zawsze będzie FALSE, gdyż $zajety jest właśnie zwróconym rekordem. Ty masz sprawdzać co ten rekord zawiera a nie czy jest...

print_r($zajety);
Go to the top of the page
+Quote Post
szaq00
post
Post #5





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

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


czyli zamiast
if(empty($zajety) dac


if(($zajety) == 0){
}else {}
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




rety... zrób
print_r($zajety);
jak cię prosiłem. Co widzisz?
Go to the top of the page
+Quote Post
szaq00
post
Post #7





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

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


Array ( [0] => 1 [blad] => 1 ) gdyż mam jeden rekord zgodny
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




No... czyli $zajety jest rekordem/tablicą jak ci już pisałem....
Nie możesz więc robić:
if(($zajety) == 0){
gdyż to jest tablica. A tablicy do 0 się nie porównuje.... porównuje się jej elementy... Staraj sie skupiać na tym co ci ludzie piszą

if(($zajety[0]) == 0){
Go to the top of the page
+Quote Post
szaq00
post
Post #9





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

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


dobrze nie rozumiem jeszcze jednego

".$re1['czas']." = 2
  1. query("update zadania_aktywne set czas = unix_timestamp() + 3600 * ".$re1['czas']." where id_wykonawcy = ".$user);


wpisuje tak czy inaczej obecną godzinę kilka min w tył a powinno np zamiast do 12 to powinno do 14 gdyż dodaje 2*1h
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




echo "update zadania_aktywne set czas = unix_timestamp() + 3600 * ".$re1['czas']." where id_wykonawcy = ".$user;
Go to the top of the page
+Quote Post
szaq00
post
Post #11





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

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


juz mi działa pomogło twoje echo zauwazyłem że jest 3600 * 0 zle pobierało zmienna dzieki stary ;] + leci jesli da rade to nawet 2
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




Mam nadzieję, że te proste sprawdzanie na czym się operuje zostanie ci w pamięci na dłużej. (IMG:style_emoticons/default/smile.gif) Bo nie będę już ci przecież wypominał, że w tym temacie już ci tę metodę pokazywałem...

Zapoznaj się też z tym tematem
Temat: Jak poprawnie zada pytanie
gdyż zawiera on wiele cennych wskazówek dla początkujących userów
Go to the top of the page
+Quote Post

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: 22.08.2025 - 18:09