webForumDet fria alternativet

Skriva ut inga träffar ?

7 svar · 321 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Har denna kod, som fungerar för att visa reslutatet på en sökning, men hur gör man för att skriva ut "Inga träffar" om inget hittats. (Då $Row är tom alltså, eller om det finns något "EOF sätt). ?

<?
while($Row=mysql_fetch_array($Result)){	
print "&nbsp;";
print $Row[title];
print " ";
print "($Row[clicks])";
print "<br>";
?>
rakiMedlem sedan jan. 2003137 inlägg
#2

Nåt sånt här kanske:

	if (mysql_affected_rows() == 0){
		print "Hittade inget"; 
}else{
	while ($Row = mysql_fetch_array($Result)){
                   print "&nbsp;";
                   print $Row[title];
                   print " ";
                   print "($Row[clicks])";
                   print "<br>";
       }
}
PellefantMedlem sedan maj 20023 372 inlägg
#3

Tjena!

Fick det inte att fungera riktigt, testade även med att bara lägga dette efter för sig, men "inga träffar" skriva inte ut. :(

<?
if (mysql_affected_rows() == 0){
        print "Hittade inget"; 
}
?>
SPiNMedlem sedan mars 20007 896 inlägg
#4

Det beror på hur din SQL-fråga ser ut. Använder du nyckelordet SELECT, alltså när du ska hämta data, ska du använda dig av funktionen mysql_num_rows(), om du har updaterat, tagit bort en post eller satt in en post ska du använda dig av mysql_affected_rows(). Du använder dig av funktionerna som raki visade.

BäckmanMedlem sedan nov. 2001274 inlägg
#5

Detta funkar osså.

if (mysql_num_rows($result) == 0){
        print "Hittade inget"; 
}else{
    while ($Row = mysql_fetch_array($Result)){
                   print "&nbsp;";
                   print $Row[title];
                   print " ";
                   print "($Row[clicks])";
                   print "<br>";
       }
}

Detta kan alltså användas för att räkna ut hur många träffar du får:

$IntHits = mysql_num_rows($result);
PellefantMedlem sedan maj 20023 372 inlägg
#6

Hej! :)

Nu har jag testat alla era förslag, men får inget att funka, kanske ligger "felet" innan i koden. Om det finns träffar så skriva de ut, så det fungerar, det är just när inga träffar finns som inget skrivs ut. :(

Så här ser SQL frågan och koden ut.

<?

	$searchon = $_GET['searchon'];
	$Link = mysql_connect("localhost", "xxx", "xx");
	mysql_select_db("xx", $Link);
	$Query = "SELECT * FROM table1 WHERE title LIKE '$searchon%' & approved=1 ORDER BY title;" or die (mysql_error());
	$Result = mysql_query($Query) or die("Error: ".mysql_error()." in query: ".$Query);
	
?>		
	<font  FACE="Arial"><b>
<?
while($Row=mysql_fetch_array($Result)){	
print "&nbsp;";
print $Row[title];
print " ";
print "($Row[clicks])";
print "<br>";

$IntHits = mysql_num_rows($result);

if ($IntHits == 0){
        echo "Hittade inget"; 
}
?>
SPiNMedlem sedan mars 20007 896 inlägg
#7

Byt:

<?
while($Row=mysql_fetch_array($Result)){	
print " ";
print $Row[title];
print " ";
print "($Row[clicks])";
print "<br>";

$IntHits = mysql_num_rows($result);

if ($IntHits == 0){
        echo "Hittade inget"; 
}
?>

Mot:

<?
if( mysql_num_rows( $Result ) == 0 )
     echo "Inget hittades";

while($Row=mysql_fetch_array($Result)){	
print " ";
print $Row[title];
print " ";
print "($Row[clicks])";
print "<br>";
}
?>

Du hade missat en avslutande måsvinge för while som störde rätt hårt. Jag bytte plats på satserna också, jag har för mig att man ska kolla mot mysql_num_rows() innan man kör genom resultatet i någon annan funktion.

PellefantMedlem sedan maj 20023 372 inlägg
#8

Då gick det. Tack alla för hjälpen.

127 ms totalt · 3 externa anrop · v20260731065814-full.cf67ef55
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)