BiH



#1 24.03.2020-11:33
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,876


Subject: spajanje imena table za pretragu
MYSQL

imam cetiri table: regija_zapad, regija_istok, regija_jug, regija_sjever

moze li se u mysql upitu spajati ime table od varijabli za pretrazivanje?

Sada radim ovako:

DownloadIzvorni kod (Text):
  1. <?php
  2.  
  3. if($izbor==1){upit=mysql_query("SELECT * FROM regija_zapad WHERE kolicina>=1")}
  4. if ($izbor==2){upit=mysql_query("SELECT * FROM regija_istok WHERE kolicina>=1")}
  5. if($izbor==3){upit=mysql_query("SELECT * FROM regija_sjever WHERE kolicina>=1")}
  6. if ($izbor==4){upit=mysql_query("SELECT * FROM regija_jug WHERE kolicina>=1")}
  7. ...
  8. ?>

htio sam smanjiti broj upita i svesti sve na jedan tako da tablu dobijem iz spajanja stringa, ali mi ne radi:
DownloadIzvorni kod (Text):
  1. <?php
  2.  
  3. switch ($izbor) {
  4.     case 1:
  5.         $kojaRegija="zapad";
  6.         break;
  7.     case 2:
  8.         $kojaRegija="istok";
  9.         break;
  10.     case 3:
  11.         $kojaRegija="sjever";
  12.         break;
  13.     case 4:
  14.         $kojaRegija="jug";
  15.         break;
  16. }
  17.  
  18. upit=mysql_query("SELECT * FROM "regija_" and "$kojaRegija" WHERE kolicina>=1")
  19.  
  20. ?>

Život je moja domovina.
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 24.03.2020-11:33 od strane Avko. ↑  ↓

#2 24.03.2020-11:40
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,168


Subject: Re: spajanje imena table za pretragu
DownloadIzvorni kod (PHP):
  1. <?php
  2.  
  3. switch ($izbor) {
  4.     case 1:
  5.         $kojaRegija="regija_zapad";
  6.         break;
  7.     case 2:
  8.         $kojaRegija="regija_istok";
  9.         break;
  10.     case 3:
  11.         $kojaRegija="regija_sjever";
  12.         break;
  13.     case 4:
  14.         $kojaRegija="regija_jug";
  15.         break;
  16. }
  17. $upit=mysql_query("SELECT * FROM  $kojaRegija WHERE kolicina>=1")
  18. ?>

Pozdrav
↑  ↓

#3 24.03.2020-11:50
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,876


Subject: Re: spajanje imena table za pretragu
da to je to, zahvaljujem

postoji li mozda mogucnost unutar mysql upita spajanje, npr $nekiString + $promijenjiviString ?
Život je moja domovina.
↑  ↓

#4 24.03.2020-11:59
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,168


Subject: Re: spajanje imena table za pretragu
U php sve postoji.
Sql je samo string za php ali za bazu je on upit.
$sql="SELECT $imepoljavariablaphp FROM " . $var1 . $var2 . " WHERE kolicina>=1"
U tvom slucaju:
$var1="regija_";
$var2="sjever";
Znaci $sql je samo obicni string sastavljen iz variabli i teksta.
Ako ga zelimo proslijediti bazi kao upit onda moramo ispostovati pravila upita sto u ovom slucaju jesmo.
Sada ga saljemo bazi:
$upit=mysql_query($sql");
Pozdrav
↑  ↓

#5 24.03.2020-17:16
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,876


Subject: Re: spajanje imena table za pretragu
da, logično.
Nisam se toga sjetio.
Mozganjem nisam dosao do inspiracije.

Čini mi se da je jedan od ključnih elemenata zabavljanje uma (pogotovo podsvjesnog uma) nečim drugim - time kao da maknemo pritisak "sad moram naći rijesenje". Ali pri tom je bitno da je to čime ga okupiramo nešto što možemo raditi po automatici.

Meni zna pomoci za opustiti mozak:
- odlazak u birtiju (sada su zatvorene zbog korona virusa)
- šetnja, nesmijemo se šetati, moramo biti u kuci
- pjevanje, baš mi se i ne pjeva nakon svega sto se desava

eto,hvala jos jednom
Život je moja domovina.
↑  ↓

#6 24.03.2020-19:28
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,168


Subject: Re: spajanje imena table za pretragu
Eto ostalo nam je samo to da smislis neki zadatak pa da ga rjesavamo a ti si dobar u tome.
Pozdrav
↑  ↓

#7 05.07.2020-16:31
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,876


Subject: Re: spajanje imena table za pretragu
Evo slucajno danas nesto radio pa ispalo rijesenje. Sjetio sam se da sam to postavio pitanje pa da iznesem svoja nova iskustva.

Moguce su table:

tbl_regija_zapad, tbl_regija_istok, tbl_regija_sjever, tbl_regija_jug

<?php
$imeTable="tbl_regija_zapad"

upit="SELECT * FROM $imeTable WHERE DATUM='$danasnjiDatum'"
...

?>

znaci da napomenem ovo mi nije radilo;

-upit="SELECT * FROM ' $imeTable ' WHERE DATUM='$danasnjiDatum' "
-upit="SELECT * FROM ' " . $imeTable . " ' WHERE DATUM='$danasnjiDatum' "
-upit="SELECT * FROM ' . $imeTable . ' WHERE DATUM='$danasnjiDatum' "

radi bez ikakvih znakova, goli string

upit="SELECT * FROM $imeTable WHERE DATUM='$danasnjiDatum'"


to radi na UwAmp, neznam kako je na stvarnom serveru ili na nekom drugom xampu ili ...
Život je moja domovina.
↑  ↓

#8 05.07.2020-17:37
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,168


Subject: Re: spajanje imena table za pretragu
Ako koristis duple znake navoda " onda u okviru njih svaka rijes koja ima ispred znak $ se smatra vriablom,
napr:
$variabla="neki drugi tekst"
$opet_var="dodatak"
echo "neki tekst $varibla pa opet tekst i $opet_var i opet tekst";
Pozdrav
↑  ↓

#9 05.07.2020-21:11
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,719


Subject: Re: spajanje imena table za pretragu
Ja bi ovde uradio UNION queri na sva tabela onda bi isao kriterija
↑  ↓

#10 05.07.2020-23:30
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,876


Subject: Re: spajanje imena table za pretragu
Citat od Gjoreski:
Ja bi ovde uradio UNION queri na sva tabela onda bi isao kriterija
daj primjer
Život je moja domovina.
↑  ↓

#11 06.07.2020-08:57
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,168


Subject: Re: spajanje imena table za pretragu
Citat:
znaci da napomenem ovo mi nije radilo;

-upit="SELECT * FROM ' $imeTable ' WHERE DATUM='$danasnjiDatum' "
U ovom slucaju '$danasnjiDatum' je obican string. kao i ' $imeTable ' ,
Treba ukloniti ovj nabk '
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 09.08.2020-06:33.