ďťż

[php i mysql]problem ze skryptem :/ Unknown column 'asdf' in 'where clause'

       

Podstrony


telcocafe

Witam otoz mam taki problem napisalem sobie prosty skrypcik:
<?php if($polaczenie=mysql_connect('mysql.60free.ovh.org', 'xx', 'xxx')) { mysql_select_db('xxx'); if(isset($HTTP_POST_VARS['szukaj_nazwa']) && isset($HTTP_POST_VARS['opcja'])) { switch($HTTP_POST_VARS['opcja']) { case 1: { $query="SELECT * FROM dane WHERE opis=".$HTTP_POST_VARS['szukaj_nazwa'];break; } case 2: { $query="SELECT * FROM dane WHERE program=".$HTTP_POST_VARS['szukaj_nazwa'];break; } case 3: { $query="SELECT * FROM dane WHERE nazwa_pliku=".$HTTP_POST_VARS['szukaj_nazwa'];break; } } } if($wynik=mysql_query($query)) { while($wiersz = mysql_fetch_array($wynik)) { echo "Pole pierwsze".$wiersz['nick']."<br><br>"; echo "Pole drugie".$wiersz['kod']."<br><br>"; echo "Pole trzecie".$wiersz['opis']."<br><br>"; } } else echo 'nie mozna wyslac zapytania !'.$query.'('.mysql_error($polaczenie).')'; } else echo 'nie mozna polaczyc z baza !'; ?>
I kiedy probuje go wykorzystac na stronie to wyskakuje taki blad:
Unknown column 'asdf' in 'where clause'
gdzie asdf to oczywiscie to co wpisalem w formularzu :/
Nie wiem dlaczego czy ktos moze pomoc ?
P.S: Tabela moja w bazie nazwya sie dane, a poszczegolne pola to m.in: program, nazwa_pliku.
Użytkownik pura89 edytował ten post 24 luty 2007, 18:24


1. $HTTP_POST_VARS to archaizm, przestarzałe. Teraz $_POST
2. brak walidacji danych z formularza wstawianych do zapytania. SQL Injection
3. w którym miejscu (numer wiersza) wywala błąd, jakie zapytanie chce wykonać (echo $query; nad wierszem z błędem).

Musisz dać wartość jako tekst, czyli zmienną wsadź w cudzyslow ;) :)
case 1: { $query='SELECT * FROM dane WHERE opis="'.$HTTP_POST_VARS['szukaj_nazwa'].'"';break; } case 2: { $query='SELECT * FROM dane WHERE program="'.$HTTP_POST_VARS['szukaj_nazwa'].'"';break; } case 3: { $query='SELECT * FROM dane WHERE nazwa_pliku="'.$HTTP_POST_VARS['szukaj_nazwa'].'"';break; }

no dzieki wam, dziala, tylko nie moge zrozumiec dlaczego tak dziwnie ? (djprog jezeli moglbys wytlumaczyc bede wdzieczny) wieki nie programowalem juz w php dlatego wyszedlem z wprawy troszeczke lecz dawniej kod pisany przezemnie dzialal :/
//aha juz wiem. thx.
Mam jeszcze jedno pytanie, bo w bazie mam pole longtext i tam mam w jednym polu b. dlugi tekst lecz kiedy chce go wyswietlic na stronie to nie zostaja zachowane poprawnie przejscia do nowej lini. Tzn. dajmy na to mam w bazie tekst:
linia1 linia2
a kiedy wyswietlam na stronie mam:
linia1linia2
jak temu zaradzic ?
Użytkownik pura89 edytował ten post 24 luty 2007, 19:16


$s = nl2br($s);
Użytkownik Coldpeer edytował ten post 24 luty 2007, 19:17
dobra thx. Hehe i jeszcze jedno pytanie: Jak mozna zrobic skrypt na numerowanie lini. Np. pobieram ten dlugi tekst z bazy i chcialbym, aby obok pojawialy sie numery lini. Mam pewien pomysł, w którym pobrał bym ze zmiennej ilosc linijek i wtedy w petli for do pewnego momentu tworzylbym tabele i z boku wypisywal liczby, ale nie znam funkcji która zwracała ilosc linijek.
//Ok mam, zrobie to za pomoca <ol> i <li>
Użytkownik pura89 edytował ten post 24 luty 2007, 19:59
Ilość linijek :P
Zrób ze stringa tablicę i daj counta ;)
http://pl2.php.net/m...l/ref.array.php

A później for'em listujesz zawartość z liczbą przed linijką ;)
Użytkownik DJ_ProG edytował ten post 24 luty 2007, 21:14
czy aby napewno jest tam funkcja, której szukam ? albo jestem ślepy ? :blink: Dalej nie znalazłem takiej funkcji co zamienia string na tablice gdzie kazda linijka to kolejny element tablicy.
P.S: Myslalem jeszcze o explode ?
Użytkownik pura89 edytował ten post 26 luty 2007, 17:44
$t = explode("\n", $s);

//@down: nie prościej foreach?
Użytkownik Coldpeer edytował ten post 26 luty 2007, 19:19
Eeee?
$array=explode("\r\n", $string_z_bazy_danych); //ew "\n" zamiast "\r\n" for ($i = 0; $i<$count($array); $i++) { echo "\t".$i.'. '.$array[$i]; }
Chyba, że masz jakoś inaczej chcesz rozdzielić ten tekst z bazy danych...

//Oczywiście spóźniony...
Użytkownik pbnan edytował ten post 26 luty 2007, 17:48
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.