Avko 24.03.2020 12:33
Predmet:MYSQL 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:

PreuzmiIzvorni kôd (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:
PreuzmiIzvorni kôd (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. ?>

zxz 24.03.2020 12:40
Predmet:Re: spajanje imena table za pretragu

PreuzmiIzvorni kôd (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. ?>

Avko 24.03.2020 12:50
Predmet:Re: spajanje imena table za pretragu

da to je to, zahvaljujem

postoji li mozda mogucnost unutar mysql upita spajanje, npr $nekiString + $promijenjiviString ?

zxz 24.03.2020 12:59
Predmet: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");

Avko 24.03.2020 18:16
Predmet: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

zxz 24.03.2020 20:28
Predmet: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.

zxz 05.07.2020 18:37
Predmet: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";

Gjoreski 05.07.2020 22:11
Predmet:Re: spajanje imena table za pretragu

Ja bi ovde uradio UNION queri na sva tabela onda bi isao kriterija

Avko 06.07.2020 00:30
Predmet:Re: spajanje imena table za pretragu

Citiraj Gjoreski:
Ja bi ovde uradio UNION queri na sva tabela onda bi isao kriterija
daj primjer

zxz 06.07.2020 09:57
Predmet: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 '