E Emil W Medlem sedan mars 2009 512 inlägg Frågan 21 aug. 2010 00:02 #1 Kommer inte på hur jag ska bygga en sök funktion. Jag tänkte att man ska kunna välja mellan att söka efter artnr,namn eller tillverkare.
Hur löser man det ?
Här kommer formulär koden
<form action="sok.php" method="post">
<table align="center">
<tr><td><b>Sök:</b></td><td><input type="text" name="sok" size="50"></td></tr>
<tr><td><b>Sök efter:</b></td><td>Artnr<input type="radio" name="alt1" value="art"> Namn<input type="radio" name="alt1" value="namn"> Tillverkare<input type="radio" name="alt1" value="tillv"></td></tr>
<tr><td align="right" colspan="2"><input type="submit" name="starta" value="Sök"></td></tr>
</form>
R rhdf Medlem sedan okt. 2007 446 inlägg du kollar helt enkelt i sok.php vilken radiobutton som är vald
utifrån det så konstruerar du din sql, alternativt har en fråga/alternativ.
Artnr <input type="radio" name="alt1" value="1">
Namn <input type="radio" name="alt1" value="2">
Tillverkare<input type="radio" name="alt1" value="3">
Pseudokod ( inte en susning om exakt syntax)
switch ($post["alt1] {
case 1:
SearchField="art"
break;
case 1:
SearchField="namn"
break;
case 2:
SearchField="tillv"
break;
}
$sqlQuery="SELECT * FROM tabellen WHERE".SearchField."LIKE%". $post["sok"]."%";
E Emil W Medlem sedan mars 2009 512 inlägg Jag har provat koden nu.
Edit: har hittat små fel i koden.
R rhdf Medlem sedan okt. 2007 446 inlägg inte det minsta förvånad att du hittade fel i koden från mitt inlägg
notera denna lilla rad
Pseudokod ( inte en susning om exakt syntax)
dock underlättar det ju för någon som KAN php om du talar om vilka fel du hittat
E Emil W Medlem sedan mars 2009 512 inlägg Jag orkar inte skriva alla fel.
Någon som vet varför den inte funkar, jag har inte hittat alla fel än och kommer inte på alla ?
du skrev att du hade fixat en del, det hade underlättat att veta vad du hade fixat, sql frågan exempelvis saknar ett mellanslag, kan vara det, få du något felmeddelande så underlättar det också.
E Emil W Medlem sedan mars 2009 512 inlägg Här kommer koden
<?php
include('bcon.php');
$con = mysql_connect($server,$user,$pass);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($data,$con);
if(isset($_POST['starta']))
{
switch ($_POST['alt1']) {
case 1;
SearchField="art";
break;
case 2;
SearchField="namn";
break;
case 3;
SearchField="tillv";
break;
}
$sok = mysql_real_escape_string($_POST['sok']);
$sqlQuery="SELECT namn FROM sok WHERE ".SearchField."'%$sok%'";
while($row = mysql_fetch_array($result))
{
echo htmlspecialchars($row['namn']);
}
}
?>
Det här felmeddelandet får jag.
Parse error: parse error in C:\wamp\www\testar.php on line 16
vilken rad är 16?
$sqlQuery="SELECT namn FROM sok WHERE ".SearchField." [b]LIKE[/b] '%$sok%'";
du skall nog även ha LIKE i din SQL fråga.
Sen vet jag inte hur det är med PHP men Request är väl ändå en sträng? så Switch satsen kan också vara fel?
Är det inte typ $SearchField du vill ha som en variabel i PHP?
E Emil W Medlem sedan mars 2009 512 inlägg Tack så mycket för hjälpen det var att det skulle vara $SearchField och LIKE.
Så nu funkar sökfunktionen.
du saknade även } i din switch fråga ser det ut som.
sen switch case skall väl vara med ":" och inte ";"?
E Emil W Medlem sedan mars 2009 512 inlägg jag kör med ; och det funkar bra och sen fattades mysql_query.