webForumDet fria alternativet

sök i forum fel!!

PHP

12 svar · 344 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Frågan#1

Jag har denna kod för att söka igenom ett forum som ligger i sparat i MySql(har så man ska kunna fylla i ett sök ord för att söka ett inlägg.)

<?
		  $con = mysql_connect("localhost","xxxxxx","xxxxxx") 
  or die("Error connecting to db<br>".mysql_error()); 
$db = mysql_select_db("xxxxxx") 
  or die("Error selecting db<br>".mysql_error());  

if(isset($_GET['sokresultat'])) { 
$nyckelord = addslashes($_GET['nyckelord']); 

$qsok = mysql_query("select * from forum where fält like '%$nyckelord%' order by id desc"); 
$antal = mysql_num_rows($qsok); 

echo "Nyckelord: $nyckelord<br />\n"; 
echo "Antal: $antal<br /><br />\n"; 

while($ssok = mysql_fetch_array($qsok)) { 

//Skriv ut information 
echo $row['datum']."<br>";
echo nl2br($row['inlagg'] )."<br>";
echo "<b>".$row['namn']."</b>" ." - ".$row['email'] ;
echo "<hr>";
} } 
?>

men får detta fel mess:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /customers/freddeholm.com/freddeholm.com/httpd.www/sok.php on line 38
Nyckelord:
Antal:

"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/freddeholm.com/freddeholm.com/httpd.www/sok.php on line 43"

Vad är fel??

Medlem sedan juni 200032 967 inlägg
#2

Går det inte att få något vettigare felmeddelande från MySQL med mysql_error() när du ställer SQL-frågan?

Heter verkligen fältet i tabellen fält?

Medlem sedan feb. 2003777 inlägg
#3

Nej fältet heter inte "fält" ,utan (inlagg) så det var därför jag fick meddelandet, så nu får jag inget fel meddelande, men heller ingen utskrift av texten i fältet (inlagg).

Medlem sedan juni 20006 031 inlägg
#4

Ändra raden

while($ssok = mysql_fetch_array($qsok)) {

till

while($row = mysql_fetch_array($qsok)) {
Medlem sedan feb. 2003777 inlägg
#5

Nu skiver den ut alla inlägg som finns i "forum".

Medlem sedan juni 200032 967 inlägg
#6

Då tyder det på att $nyckelord är tom.

Medlem sedan feb. 2003777 inlägg
#7

ok,hur fixar jag till det då,med funktionen empty eller?

Medlem sedan juni 200032 967 inlägg
#8

Det beror på vad du vill "fixa".

Har du fyllt i något nyckelord?

Medlem sedan feb. 2003777 inlägg
#9

ja jag provade att skiva in ett nyckelord i formuläret.

Medlem sedan juni 200032 967 inlägg
#10

Och hur ser formuläret ut?

Medlem sedan feb. 2003777 inlägg
#11

så här ser koden ut nu:

<?
		  $con = mysql_connect("localhost","xxxxxx","xxxxxx") 
  or die("Error connecting to db<br>".mysql_error()); 
$db = mysql_select_db("xxxxxx") 
  or die("Error selecting db<br>".mysql_error());  

if(isset($_GET['sokresultat'])) { 
$nyckelord = addslashes($_GET['nyckelord']); 

$qsok = mysql_query("select * from forum where inlagg like '%$nyckelord%' order by id desc"); 
$antal = mysql_num_rows($qsok); 

echo "Nyckelord: $nyckelord<br />\n"; 
echo "Antal: $antal<br /><br />\n"; 

while($row = mysql_fetch_array($qsok)) {

//Skriv ut information 
echo $row['datum']."<br>";
echo nl2br($row['inlagg'] )."<br>";
echo "<b>".$row['namn']."</b>" ." - ".$row['email'] ;
echo "<hr>";
} } 
?>

formuläret ser ut så här:

<form action='sok.php?sokresultat' method='post'>
<input type='text' name='nyckelord' />
<input type='submit' value='Sök' />
</form>

Medlem sedan juni 200032 967 inlägg
#12

Eftersom du använder metoden POST i formuläret, blir variabeln $nyckelord tom när du använder $_GET för att hämta in värdet. Använd $_POST istället.

Medlem sedan feb. 2003777 inlägg
#13

Tusen tack nu funkade det utmärkt.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)