Gå til innhold

Hei jeg trenger LYNHJELP!php * psql


Anbefalte innlegg

Hei

 

Er det noen måte å lese inn variabler til query statmentet?

 

Er veldig ny med php og databaser, skal lage en snutt, hvor bruker i frontenden skal kunne gjøre ulike valg og legge inn et søk. Deretter skal den få frem den colonnen de søker etter.

 

Det funker med en if-setning, men siden det er 20 valg, blir det jo en meget lang kode.

 

 

håpet å kunne gjøre noe slikt:

 

get_input($input, $search){ //sender med inputinformasjon

{

global $db;

$query="select * from v_site_hosts where $search='$input'"; //problemet er $search

$result=$db->query($query);

while ($row=$result->fetchRow(DB_FETCHMODE_OBJECT)){

$out[]=$row;

}

 

return $out;

}

 

 

 

Håper på raskt svar, for har lett i to dager men finner ingen ting på det - og må komme videre!:)

 

Tusen takk for hjelp.:cry:

Lenke til kommentar
Videoannonse
Annonse
Hva er egentlig problemet?

9348202[/snapback]

 

 

Ønsker at variablen etter WHERE, skal kunne være foranderlig - slik at jeg kan søke etter den kolonnen brukeren velger, om det er name, id, site etc.

 

slik det er nå har jeg måttet lage en funksjon for hver kolonne

 

get_id(){

 

....WHERE id='$var'}

 

get_nam(){

 

---WHERE name='$var'}

 

etc.

 

ønsker en

 

 

get_input(){

 

select * from v_site WHERE $search ='$var';

 

}

 

men siden jeg er ny, kan det godt hende jeg forklarer meg rotete...men ble det klarere nå?

 

håper det og er utrolig glad om du har noe tips.

Lenke til kommentar
Jeg skjønner ikke hva som er feil, for det ser nemlig helt riktig ut. Kan du forklare hva slags feil du får når du prøver den koden der? hva blir sql'en? hva blir feilmeldingen?

9348334[/snapback]

 

 

Hvis jeg har funksjonen slik den er, blir det ingen feilmelding, men den leser heller ingen ting.

 

Jeg ønsker å selv kunne bestemme hva verdien til $search skal være i følgende :

 

select * from v_site host where $search='$input';

 

v_sitehost er min database som er konstant.

 

den har 20 kolonner, site - id - name - alias osv.

 

jeg har laget en templates hvor bruker kan velge om de vil søke på site - id etc. også skriver de inn et søkeord feks. de velger name og skrive inn systemware.

 

Det som blir tungvint er visst jeg må lage en funksjon for hver kolonne.

 

Ønsker å kunne kjøre $search som en variable, som bestemmes etter hva bruker velger som søke nøkkel.

 

 

tusen takk for hjelp - og beklager at jeg er litt omstendlig:)

 

 

her er koden i sin helhet..:

 

 

if (!$ss->Check() || !isset($_SESSION['logged_in']) || !$_SESSION['logged_in']) {

header( "Location: error.php" );

die();

}

 

$search_options = array(0 => 'Site',1 => 'Id', 2 => 'name', 3 => 'Alias', 4 => 'Address', 5=> 'Parents',6=>'Check command',

7=>'Max check attempts',8=>'Check interval',9=>'Active checks enabled', 10=>'Passive checks enabled',11=>'Check period',12=>'Obsess over host',

13=>'Check freshness',14=>'Low flap threshold',15=>'High flap threshold',16=>'Flap detection enabled', 17=>'Process perf data', 18=>'Retain status information',

19=>'Retain nostatus information',20=>'Contact groups',21=>'Notification interval',22=>'Notification period',23=>'Notification options',

24=>'Notifications enabled',25=>'Stalking options'); //array med alle kolonner i hosten - kan forandres etter nødvendighet

$search = "";

$error ="";

 

if (isset($_POST['Submit'])){

 

 

if ($_POST['Submit'] == "Clear"){ //hvis input er tom - vis feil,

header ( "Location: advSearchHost.php" );

 

 

} else {

 

$input=$_POST['Input'];

$tmp_search=$_POST['Search'];

$search=$search_options[$tmp_search]; //debug variabel for å se om den fikk en verdi

 

if($input==''){

echo('dette er feil');

die();

 

}else

 

//ellers så les inn variablene

echo($input);

echo($search);

$users=get_test($input,$search);

echo var_dump($users);

die();

 

}

}

 

display($users,$search_options);

 

 

function display($users,$search_options){ // selve functionen! - viktig å sende inn arrayet også!

 

global $smarty;

$msg=$_SESSION['user'] . " are logged in, role: " . $_SESSION['role'] ;

$smarty->assign('msg',$msg);

 

$smarty->assign('users',$users);//?

$smarty->assign('logged_in',$_SESSION['logged_in']);

$smarty->assign('search_options',$search_options);

$smarty->assign('search',$search);//?

$smarty->assign('search',$_POST['Search']); //gjør det samme som $search=search_option[$tmp_search]

$smarty->display('advSearchHost.tpl');

}

 

 

 

function displayResult($users){ //skriver ut resultatet

global $smarty;

$smarty->assign('users',$users);

$smarty->display('getResult.tpl');

}

 

 

 

// koden nedenfor er slik jeg ønsker den skal kunne være, men den returnere kun

NULL og funker ikke

 

function get_test($input,$search) //denne funksjonen returnere kun NULL

{

global $db;

$query="select * from v_site_hosts where $search='$input'";

$result=$db->query($query);

while ($row=$result->fetchRow(DB_FETCHMODE_OBJECT)){

$out[]=$row;

}

 

return $out;

}

Endret av Bellus
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...