Emil WMedlem sedan mars 2009512 inlägg 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>
rhdfMedlem sedan okt. 2007446 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"]."%";
Emil WMedlem sedan mars 2009512 inlägg Jag har provat koden nu.
Edit: har hittat små fel i koden.
rhdfMedlem sedan okt. 2007446 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
Emil WMedlem sedan mars 2009512 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å.
Emil WMedlem sedan mars 2009512 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?
Emil WMedlem sedan mars 2009512 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 ";"?
Emil WMedlem sedan mars 2009512 inlägg jag kör med ; och det funkar bra och sen fattades mysql_query.