[ Devious @ 07.10.2006. 05:14 ] @
trebam napisati u PHP-u querry koji ce upisati u mySQL tablicu jedan redak, ali
problem je u tome sto ima previse "" ''' i slicnih znakova i gubim se u tome,
ne mogu ga natjerati da proradi.

problem je u tome sto ne unosim poznate stringove nego
varijable kao npr: $_request['varijabla1']

ima li tko neki jednostavniji nacin za kreiranje takvih SQL upita, ili nekakav alat ili slicno?

hvala
[ vecitiKrivac @ 07.10.2006. 12:46 ] @
Mislim da bi bolje bilo da si dostavio tvoje primere koje si pokusavao, pa da se vidi gde gresis. Mislim da bi to trebalo ovako da se radi


Code:

  $result_h=mysql_query("select ime_hotela from hotel where hotelid=$_GET[radio]");

Gde je vrednost $_GET neki broj, to znaci da ako vec imas navodnike ("") pri koriscenju get, post i drugih promenljivih potrebno je u uglastu zagradu uneti naziv promenljive. Tako da u tvom primeru bi trebalo da je
Code:

 $sql=mysql_query("select *from tabela where id=$_request[varijabla1]");

Sa request nisam probao, ali mislim da bi to trebalo da radi (jer sa get i post sam sql upite izvrsavao).
Ako postavjas upit vezan za datum onda mozes i ovako
Code:

 mysql_query("select *from tabele where datum=\"06-09-2006\"");


Evo saljem ti i query koji sam uradio za seminarski koji radi i mislim da je to sto tebi treba
Code:

$result_s=mysql_query("select broj_kreveta, count(broj_sobe) from apartman where 
    broj_sobe not in(select broj_sobe from rezervacija where hotelid=$_GET[radio] and (datum_dolaska BETWEEN \"$_GET[datum_dol]\" and \"$_GET[datum_odl]\"
    or datum_odlaska between \"$_GET[datum_dol]\" and \"$_GET[datum_odl]\"))and hotelid=$_GET[radio] group by broj_kreveta");


Nadam se da ce ovo da ti pomogne. Pozdrav
[ Nemanja Avramović @ 07.10.2006. 12:48 ] @
Šta je problem u, recimo, ovakvom kodu:

Code:
$promenljiva = addslashes($_REQUEST['promenljiva']);
$druga_promenljiva = addslashes($_REQUEST['druga_promenljiva']);
$treca_promenljiva = addslashes($_REQUEST['treca_promenljiva']);

$query = "INSERT INTO tabela SET promenljiva = '$promenljiva', druga_promenljiva = '$druga_promenljiva', treca_promenljiva = '$treca_promenljiva'";

$sql = mysql_query($query);

if ($sql) { echo "Query uspešno izvršen"; }
  else { echo "Došlo je do greške! MySQL je vratio: " . mysql_error(); }
[ zion_trooper @ 11.10.2006. 11:36 ] @
Ne znam da li si i sam vec ustanovio gde je greska...
Nisam bash neshto izverziran u ovome, ali imash gresku u samom SQL-u i to u osnovnoj sintaxi...

Code:

$query = "INSERT INTO tabela SET promenljiva = '$promenljiva', druga_promenljiva = '$druga_promenljiva', treca_promenljiva = '$treca_promenljiva'";

trebalo bi
Code:

INSERT INTO tabela VALUES ($promenljiva1, $promenljiva2, $promenljiva3)

stim shto morash voditi rachuna o polozhaju promenljivih. Tj. svaka na svoje mesto po redu tableli.

Komanda SET se koristi pri UPDATE-u

Code:

UPDATE tabela SET promenljiva1 = $promenljiva1 ...


[ Nemanja Avramović @ 11.10.2006. 11:47 ] @
Može i SET opušteno... stvar navike.

[Ovu poruku je menjao Nemanja Avramović dana 11.10.2006. u 13:00 GMT+1]