Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Problem ze skladnia SELECT, nie mogę wstawic zmiennej
Huran
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.08.2004

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


  1. <?php
  2. $wykonaj = mysql_query('SELECT $wartosc FROM `tablica` WHERE Login=\"'.$_SESSION[&#092;"USER_LOGIN\"].'\" LIMIT 1');
  3. ?>


Chce pobrac wylacznie kolumne o nazwie zapisanej w zmiennej $wartosc, jednakze jesli wstawiam tam zamiast gwiazdki zmienną pojawia sie przy probie mysql_fetch_array:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Go to the top of the page
+Quote Post
tumczasty
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


może nie ma takiej kolumny w tej tabeli...

żeby dowiedzieć się czegoś więcej o tym błędzie, dopisz coś takiego:
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post
Huran
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.08.2004

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


Kod
Nieznana kolumna '$wartosc' w field list

Taka kolumna istnieje na pewno, zwrocilem tez uwage na wielkosc liter.
Jak mozna w dowolny sposob podmienic ta gwiazdke na zmienna? Mecze sie nad tym juz dluuuuugo i skonczyly mi sie pomysly sad.gif

Ten post edytował Huran 11.08.2004, 20:14:08
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat(Huran @ 2004-08-11 20:54:19)
  1. <?php
  2. $wykonaj = mysql_query('SELECT $wartosc FROM `tablica` WHERE Login=\"'.$_SESSION[&#092;"USER_LOGIN\"].'\" LIMIT 1');
  3. ?>

Proponuje cofnąć się do podstaw php.
Hint: różnice pomiędzy " a '.


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

Go to the top of the page
+Quote Post
Huran
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.08.2004

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


Moglbys na drodze wyjatku udzielic mi odpowiedzi, co zmienic w tym konkretnym wypadku? Ucze sie najlepiej na przykladach... zmarnowalem juz wiele godzin na probe znalezienia bledu i wiem, ze sam wiecej nie osiagne...

PS. To takze nie dziala poprawnie (to inna funkcja)...
Kod
'UPDATE `gracze` SET "'.$wartosc.'"="'.$wartosc.'"+"'.$ile.'" WHERE login="'.$_SESSION["USER_LOGIN"].'" LIMIT 1'
Go to the top of the page
+Quote Post
tumczasty
post
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


słuchaj uważnie, bo nie będę powtarzać...
różnica między cudzysłowem a apostrofem jest taka:
  1. <?php
  2. $wartosc=2;
  3. echo&#092;"kolory $wartosc n\"; // wyświetli \"kolory 2 [koniec linii]\"
  4. echo'kolory $wartosc n'; // wyświetli \"kolory $wartosc n'
  5. echo'kolory '.$wartosc; //wyświetli \"kolory 2\"
  6. ?>

czyli to, co w cudzysłowie, jest przetwarzane (przez co działa ciut wolniej), a to, co w apostrofie, zostaje (prawie) bez zmian

przykłady nt. tego, co w tym drugim przypadku:
  1. UPDATE gracze SET wartosc=wartosc+4 WHERE login='huran' LIMIT 1 #dobrze
  2. UPDATE `gracze` SET `wartosc`=`wartosc`+4 WHERE `login`='huran' LIMIT 1 #dobrze
  3. UPDATE `gracze` SET wartosc=wartosc+'4' WHERE login='huran' LIMIT 1 #dobrze
  4. UPDATE `gracze` SET `wartosc`=`wartosc`+'4' WHERE `login`='huran' LIMIT 1 #dobrze
  5. UPDATE `gracze` SET 'wartosc'='wartosc'+4 WHERE login=huran LIMIT 1 #zle!

czyli nazwy kolumn zawsze bez apostrofów: ' ' (ew. mogą być w tych odwrotnych: ` `)
Go to the top of the page
+Quote Post
Huran
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.08.2004

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


Jestem niewymownie wdzięczny za okazaną pomoc. Poprawilem bledy i wszystko dziala, jak należy. Dodac nalezy, ze bylem święcie przekonany, że probowalem juz (metoda prob i bledow, niestety) skladni '.$costam.'
Teraz na pewno metoda prob i bledow odejdzie w odstawke smile.gif Jeszcze raz dziekuje.
Go to the top of the page
+Quote Post
mnc
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 30.05.2005

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


hmm a co poradzicie mi na takie cos ?

  1. <?php
  2. $sql=&#092;"INSERT INTO user (user_name,password,email,remote_addr,confirm_hash,is_confirmed,permiss) \".
  3. &#092;"VALUES ('$user_name','\". md5($password1) .\"','$email','$GLOBALS[REMOTE_ADDR]','$hash','0','0')\";
  4. ?>


Nieznana kolumna 'permiss' w field list

a w bazie istnieje :E

zapytanie z sql :
  1. Wprowadzone rekordy: 1
  2. Id wstawionego wiersza: 1 (Wykonanie zapytania trwało 0.0008 sekund(y))
  3. zapytanie SQL:
  4. INSERT
  5. INTO user( user_name,
  6. PASSWORD , email, remote_addr, confirm_hash, is_confirmed, permiss )
  7. VALUES (
  8. '$user_name', '". md5($password1) ."', '$email', '$GLOBALS[REMOTE_ADDR]', '$hash', '0', '0'
  9. )


Ten post edytował mnc 30.05.2005, 21:55:17
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: 19.08.2025 - 14:15