Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z updatem do bazy
adek6
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2005

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


mam problem gdy chce zaktuaklizować dane w tabeli mam kod
  1. <?php
  2.  
  3. mysql_query("UPDATE tabela SET 
  4. zespol = '$zespol2', mecze = '$mecze2', w_mecze = '$w_mecze2', z_mecze = '$z_mecze2', 
  5. p_mecze = '$p_mecze2', z_bramki = '$z_bramki2', s_bramki = '$s_bramki2', punkty = '$punkty2' WHERE id=$id");
  6. print "<p>Ustawienia meczów zostały uaktualnione<br><br></p>";
  7. } else {
  8. $mm = mysql_query("SELECT * FROM tabela WHERE (zespol = '{$_POST['dru']}')");
  9. $m = @mysql_fetch_array($mm);
  10. $id = $m['id'];
  11. $zespol = $m['zespol'];
  12. $mecze = $m['mecze'];
  13. $w_mecze = $m['w_mecze'];
  14. $z_mecze = $m['z_mecze'];
  15. $p_mecze = $m['p_mecze'];
  16. $z_bramki = $m['z_bramki'];
  17. $s_bramki = $m['s_bramki'];
  18. $punkty = $m['punkty'];
  19.  
  20. ?>

i błąd jest w miejscu
Kod
WHERE id=$id

bo jak przypisałem zmienną id ='1' do było dobrze, czy ktoś może mi powiedzieć co źle zrobiłem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





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




1) uzywaj odpowiedniego BBCODE (poprawiam)
2) nie widzi zmiennej $id ponieważ:
a ) nie przekazujesz jej
b ) przekazujesz ją w url lub w formularzu, ale masz wylaczone register_globals w php.ini. Musisz się wiec odwolać poprzez $_GET['id'] lub $_POST['id'] w zależności od tego skąd pobierasz to id (url, formualrz)


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

"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
Balu90
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.08.2005
Skąd: Mysłowice

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


Witam, mam podobny problem - z poziomu konsoli mysql przyjmuje zapytanie, a z poziomu przeglądarki nie chce - zamieszczam kod odpowiedzialny za to:
  1. <?php
  2. $userid = $_SESSION['userid'];
  3. if ($_POST['pwd'] || $_POST['pwd2'] || $_POST['email']) {
  4. if($_POST['pwd'] && ($_POST['pwd']= $_POST['pwd2'])) {
  5. $sql = "SELECT password('".$_POST['pwd']."')";
  6. $do_query = mysql_query($sql) or die(__LINE__.mysql_error());
  7. $data = mysql_fetch_row($do_query);
  8. $new_password = $data[0];
  9. $sql = "SELECT password FROM user WHERE userid=$userid";
  10. $do_query = mysql_query($sql) or die(mysql_error());
  11. $data = mysql_fetch_row($do_query);
  12. $old_password = $data[0];
  13. if ($new_password != $old_password) {
  14. $sql = "UPDATE user SET password = password('".$_POST['pwd']."') WHERE userid = $userid";
  15. $do_query = mysql_query($sql) or die(__LINE__.mysql_error());
  16. }
  17.  
  18. }
  19. else if ($_POST['email']) {
  20. $sql = "SELECT email FROM user WHERE userid = $userid";
  21. $do_query = mysql_query($sql) or die(__LINE__.mysql_error());
  22. $data = mysql_fetch_row($do_query);
  23. $old_email = $data[0];
  24. $new_email = htmlspecialchars(addslashes($_POST['email']));
  25. //echo $new_email;
  26. /*
  27. I tu się wykłada... na łopatki
  28. */
  29. if ($old_email != $new_email) {
  30. $sql = "UPDATE user SET email = '".$new_email."' WHERE userid = $userid";
  31. echo $sql;
  32. $do_query = mysql_query($do_query) or die(mysql_error());
  33. }
  34. }
  35. $tpl->setCurrentBlock("updated");
  36. $message = "Twój profil został zaktualizowany!";
  37. $tpl->setVariable("MESSAGE", $message);
  38. $tpl->parseCurrentBlock();
  39. }
  40.  
  41. ?>

Komunikat błędu wygląda tak:
Cytat
Something is wrong in your syntax obok 'Resource id #9' w linii 1

a zapytanie wygląda tak:
  1. UPDATE user SET email = 'balu90@gmail.com' WHERE userid = 1

Mam nadzieję, że ktoś mi pomoże
I dodam, że jak z konsolki wszystko wywołuje, to zapytanie działa

Ten post edytował Balu90 24.08.2005, 21:02:43


--------------------
Sprzęt: Intel Celeron 466 @ 525 / Procomp BVC1A / NVidia Riva TNT2 M64 / 256 MB SDRam / HDD Seagate 4,3 GB
Oprogramowanie:
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




Błąd masz w lini 34 podaego tu skryptu:
$do_query = mysql_query($do_query) or die(mysql_error());

Zauważ, że wykonujesz zapytanie na zmiennej $do_query, która parę linijek wcześniej przyjmuje wynik zapytania:
$do_query = mysql_query($sql)

Stąd ten błąd. Chciałeś chyba zrobić tak:
$do_query = mysql_query($sql) or die(mysql_error()); ale się pomyliles biggrin.gif


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

"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
Balu90
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.08.2005
Skąd: Mysłowice

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


O jejciu...
Dzięki nospor za uwagę już działa... powinienem robić to, co masz w podpisie...
Przepraszam za zaśmiecanie forum sad.gif

Hehe, kolejny użytkownik, który docenił niesamowitą mądrość Kubusia biggrin.gif
---
nospor


--------------------
Sprzęt: Intel Celeron 466 @ 525 / Procomp BVC1A / NVidia Riva TNT2 M64 / 256 MB SDRam / HDD Seagate 4,3 GB
Oprogramowanie:
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 Aktualny czas: 20.08.2025 - 08:59