Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/sql] nie udało się: Unknown column '$id' in 'where clause', gdzie popełniam błąd
wojtekwro
post 23.05.2007, 10:36:34
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

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


  1. <?php
  2. if ($_SESSION['LOGGED'] != TRUE) {
  3.  echo 'nie masz uprawnień';
  4.  exit;
  5. }
  6. if ($_SESSION['pelno'] != 1) { echo 'brak uprawnień';}
  7. else {
  8. $id=$_POST['id'];
  9. $akcep=$_POST['akcep'];
  10. //laczenie z bd
  11. $connection = @mysql_connect('localhost', 'root', '')
  12. or die('brak polaczenia z BD');
  13. $db = @mysql_select_db("ankiety")
  14. or die('Nie mogę połączyć się z bazą danych');
  15. $sql = 'UPDATE `szkolenia` SET `akcep` = '1' WHERE `szkolenia`.`id` = $id';
  16. $sql = mysql_query($sql)
  17. or die("nie udało się: " . mysql_error());
  18.  
  19. }
  20. ?>


  1. szkolenia
  2. Pole Typ NULL Domy&#347;lnie
  3. id int(11) Nie
  4. temat varchar(50) Nie
  5. uczestnicy varchar(30) Nie
  6. DATA varchar(10) Nie yyyy-mm-dd
  7. organizator varchar(20) Nie
  8. doki varchar(30) Nie
  9. cena varchar(10) Nie
  10. akcep varchar(2) Nie
  11. oc1 varchar(2) Nie
  12. oc2 varchar(2) Nie


sypie mie takim błedem jak w topicu jeżeli usunę z zapytani sql= warunek where id=$id to zapisze mi wartość pola akcep dla całej kolumny =1 ja chcę aby robił to tylko dla id z poprzedniego skryptu. Brak pomysłu jak to obejśc poprawić proszę o pomoc.

Ten post edytował wojtekwro 23.05.2007, 10:38:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post 23.05.2007, 10:39:38
Post #2





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




No chyba wyraźnie masz napisane: Nieznana kolumna '$id' . TO juz mozna sie probowac domyslic, ze zamiast przekazac wartosc zmiennej $id to przekazales tekst '$id'

powinno byc:
  1. <?php
  2. $sql = 'UPDATE `szkolenia` SET `akcep` = '1' WHERE `szkolenia`.`id` ='. $id;
  3. ?>

Poczytaj w manualu jaka jest roznica miedzy apostrofem a cudzyslowiem


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

"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
wojtekwro
post 23.05.2007, 10:46:26
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

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


jak poprawie to tak jak mówisz wali dalszym błędem
  1. <?php
  2. nie udało się: 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 ''1' WHERE `szkolenia`.`id` ='. $id' at line 1
  3. ?>


poniżej zamieszcze fragment skryptu, który przekazuje $id dalej

  1. <?php
  2. mysql_connect ("127.0.0.1","root","");
  3. mysql_select_db (ankiety);
  4. $res = mysql_query("SELECT id, akcep, oc1, oc2 FROM szkolenia WHERE id=$id LIMIT 1");
  5. $row= mysql_fetch_array($res);
  6. $wiersz['id']=$id;
  7. $wiersz['akcep']=$akcep;
  8. $wiersz['oc1']=$il2;
  9. $wiersz['oc2']=$il3;
  10. echo 'akceptacja: <b>';
  11. echo $akcep;
  12. $ile = $row["akcep"];
  13. $il2 = $row["oc1"];
  14. $il3 = $row["oc2"];
  15. $id = $row["id"];
  16.  
  17.  
  18. if($ile !='1')
  19. {echo '</b>oczekuje do akceptacji<br>';if ($_SESSION['pelno'] != 1) {} 
  20. else 
  21. {echo '<form action="akceptuj.php" method="post">
  22. <input type="hidden" name="id" value="$id">
  23. <input type="checkbox" name="akcep" value="1" />akceptacja szkolenia.<br>
  24. <input type="submit" value="dodaj" />
  25. </form>
  26. ';}
  27. ?>
Go to the top of the page
+Quote Post
nospor
post 23.05.2007, 11:05:45
Post #4





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




po pierwsze: co ty mi za kod pokazujesz? Przeciez on ma sie nijak do komunikatu bledu. Blad masz w tym samym kodzie co pokazales na poczatku

po drugie: kombinacji Ctrl+C, Ctrl+v to też trzeba umiec uzywac. Zobacz co ja ci kazalem wstawic, a spojrz co ty wstawiles w swoim kodzie (oczywiscie wnioskuje, ze źle skopiowales, po komunikacie bledu, a nie po kodzie, gdyz kodu po poprawce nie pokazales)


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

"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
wojtekwro
post 23.05.2007, 11:59:26
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

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


sorki źle wkleiłem ale jak wlepiłem tak jak kazałeś sypie tym samym
  1. <?php
  2. nie udało się: Unknown column '$id' in 'where clause'
  3. ?>
Go to the top of the page
+Quote Post
nospor
post 23.05.2007, 12:02:10
Post #6





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




Cytat
sorki źle wkleiłem ale jak wlepiłem tak jak kazałeś sypie tym samym
Nie ma prawa.
Pokaz kod po moich zmianach.
Dla pewnosci zrob tez: echo $id; i powiedz mi co to wyswietla


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

"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
Darti
post 23.05.2007, 12:06:30
Post #7





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


użyj innych cudzysłowów, nie pojedynczych (') a podwójnych ("):
  1. <?php
  2. $sql = "UPDATE `szkolenia` SET `akcep` = '1' WHERE `szkolenia`.`id` = $id";
  3. ?>
albo daj $id poza stringa tak jak napisał Ci @nospor


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
jasiek
post 23.05.2007, 12:50:52
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 20.05.2007

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


powinno pomoc :

$akcept="1";
$sql = "UPDATE szkolenia SET akcep = $akcept WHERE id=$id";
Go to the top of the page
+Quote Post
wojtekwro
post 23.05.2007, 13:07:09
Post #9





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

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


  1. <?php
  2. if ($_SESSION['LOGGED'] != TRUE) {
  3.  echo 'nie masz uprawnień';
  4.  exit;
  5. }
  6. if ($_SESSION['pelno'] != 1) { echo 'brak uprawnień';}
  7. else {
  8. $id=$_POST['id'];
  9. $akcep=$_POST['akcep'];
  10.  
  11. //laczenie z bd
  12. $connection = @mysql_connect('localhost', 'root', '')
  13. or die('brak polaczenia z BD');
  14. $db = @mysql_select_db("ankiety")
  15. or die('Nie mogę połączyć się z bazą danych');
  16. $sql = 'UPDATE `szkolenia` SET `akcep` = '1' WHERE `szkolenia`.`id` ='. $id;
  17. $sql = mysql_query($sql)
  18. or die("nie udało się: " . mysql_error());
  19. print $sql;
  20. }
  21. ?>


echo $id; wyświetliło mi $id czyli nie pobiera zmiennej z poprzedniego skryptu questionmark.gif tam szukac błędu questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 23.05.2007, 13:15:55
Post #10





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




w tamtym skrypcie masz ten sam blad, czyli nie:
  1. <?php
  2. echo '<form action="akceptuj.php" method="post">
  3. <input type="hidden" name="id" value="$id">....
  4. ?>

a:
  1. <?php
  2. echo '<form action="akceptuj.php" method="post">
  3. <input type="hidden" name="id" value="'.$id.'">....
  4. ?>

Mowilem bys poczytal o roznicy miedzy ' a "
http://pl.php.net/manual/pl/language.types.string.php


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

"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
wojtekwro
post 23.05.2007, 13:28:48
Post #11





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 26.04.2007

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


ruszyło dzięki wszystkim za pomoc a manuala przeczytam dzisiaj w domu ;]

pozdrawiam
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 - 06:42