När jag använder OR i:
$data = mysql_db_query("cvalda", "SELECT * FROM artiklar WHERE rubrik LIKE '%$query%' OR text LIKE '%$query%'");
så får jag följande fel:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /export/vol1/unix/c/cvalda/public_html/cvalda/search.php on line 51
Det är väl här felet ligger:
while ($rad = mysql_fetch_array ($data))
{
print "<font size=\"4\">Resultat:</font><p>";
Det knäppiga är att jag använt "mysql_fetch_array" hela tiden och det har inte blivit något problem. Men nu så.. Kan man använda något annat än "mysql_fetch_array" för att skriva ut det man hämtat från databasen?
Hm, nu är jag mycket förvirrad, jag testade att lägga in:
$result = mysql_query($sql) or die(mysql_error());
och då stod det att det var fel på SQL utrycket, men om jag ändrar om det till ett helt vanligt uttryck som jag använt hela tiden och som fungerar problemfritt som tex:
$open = mysql_connect("host", "user", "pass");
$data = mysql_db_query("cvalda", "SELECT * FROM artiklar WHERE id = '5'");
$result = mysql_query($data) or die(mysql_error());
mysql_close($open);
while ($rad = mysql_fetch_array ($data))
{
print "<font size=\"4\">Resultat:</font><p>";
Så står det fortfarande att det är fel i SQL utrycket, trots att det fungerar.
Jag fattar noll alltså! Vad är det för fel i SQL utrycket den snackar om egentligen?
Står så här:
You have an error in your SQL syntax near 'Resource id #2' at line 1
Men, ska det vara ett ";" i slutet av:
$query="SELECT * FROM artiklar WHERE id = '5'"
?
Plus att den inte verkar gilla "or" i:
$data = mysql_query($query); or die(mysql_error());
säger så här:
Parse error: parse error, unexpected T_LOGICAL_OR in /
EDIT: Äsch, det skulle bara inte vara ett ";" efter mysql_query($query)
Men nu till en helt annan fråga, som säkert är mycket lättare.. Detta är då alltså min patetiska sökmotor och jag hade tänkt göra så att man kan söka på flera ord och separera dom med typ "+" tecken eller nåt. Så jag delade upp sökqueryn i en array med explode() så här:
$search = explode("+",$search);
Sen vill jag ju i SQL grejen selecta alla värden på $seach, så jag testade typ $search[%] men det fungerade ju inte.. Så hur skriver man?
En sak till, hur kommer det sig att all annan kod fungerar om jag har använt grejer som tydligen inte finns längre? (Borde jag byta ut dom grejerna också?)
$query raden skall avslutas med ; efter " tecknet.
I $data... raden, ta bort ; som står före "or die".
(satt och klippte/klistrade en del)
För framtida bruk så bör du byta ut dom funktioner som är "deprecated" eftersom dom antagligen kommer att försvinna i framtida versioner av php, men om du behöver göra det just nu för att lösa ditt problem är jag tvecksam till.
Jo, jag märkte det, jag editade mitt förra post (och kom med ÄNNU en fråga..)
Men alltså det fungerade faktiskt! Helt chockad faktiskt. Men tack i alla fall!
Hm, en grej angående att byta ut den gamla koden mot den nya, det verkar inte fungera med INSERT i sql. Fast det fungerade med alla SELECT. Men det går alltså inte att lägga till information verkar det som..