Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z updatem do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
adek6
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
nospor
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)
Balu90
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
nospor
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
Balu90
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.