Jump to content

problem, query displays one result??


MDanz

Recommended Posts

i have multiple entries starting with the letter 'a' .. but the query below only displays one result.

 

this is an index/directory but is only displaying one result for that letter.

 

<?php


mysql_connect("localhost", "Master", "pword");
mysql_select_db("db");

$letter = htmlentities($_GET['search']); 
$user = mysql_query("SELECT * FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error());  

$words_output = array();
while($rowz = mysql_fetch_array($user)){
$keyword = $rowz['keywords'];
$name = $rowz['name'];                                         
$bad = mysql_query("SELECT * FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error()); 
$num_rows = mysql_num_rows($bad)or die (mysql_error());  
}

if ($num_rows == 0)
{
echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";
echo "<font face='Courier New' font size=3px font color=#FBB917>No Stacks</font><br>";
}
else 
{



if(!in_array($keyword,$words_output))



{





$words_output[] = $keyword;





echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";





echo "<font face='Courier New' font size=3px font color=#FBB917><a href='stack.php?search=$keyword&submit=Go!' style='text-decoration: none';>$keyword</a></font><br>";



}
}
?>

Link to comment
https://forums.phpfreaks.com/topic/191208-problem-query-displays-one-result/
Share on other sites

also only displays one result, when i use the query with DISTINCT.

 

<?php


mysql_connect("localhost", "Master", "pword");
mysql_select_db("db");

$letter = htmlentities($_GET['search']); 
$user = mysql_query("SELECT DISTINCT keywords FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error());  


while($rowz = mysql_fetch_array($user)){
$keyword = $rowz['keywords'];
$name = $rowz['name'];                                         
$bad = mysql_query("SELECT * FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error()); 
$num_rows = mysql_num_rows($bad)or die (mysql_error());  
}

if ($num_rows == 0)
{
echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";
echo "<font face='Courier New' font size=3px font color=#FBB917>No Stacks</font><br>";
}
else 
{






echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";





echo "<font face='Courier New' font size=3px font color=#FBB917><a href='stack.php?search=$keyword&submit=Go!' style='text-decoration: none';>$keyword</a></font><br>";



}

?>

Put the code for the word display within the while statment of the query and not outside it.

like this:

<?php


mysql_connect("localhost", "Master", "pword");
mysql_select_db("db");

$letter = htmlentities($_GET['search']); 
$user = mysql_query("SELECT * FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error());  

$words_output = array();
while($rowz = mysql_fetch_array($user)){
$keyword = $rowz['keywords'];
$name = $rowz['name'];                                         
$bad = mysql_query("SELECT * FROM Stacks WHERE keywords LIKE '$letter%' ORDER BY keywords")or die (mysql_error()); 
$num_rows = mysql_num_rows($bad)or die (mysql_error());  


if ($num_rows == 0)
{
echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";
echo "<font face='Courier New' font size=3px font color=#FBB917>No Stacks</font><br>";
}
else 
{

if(!in_array($keyword,$words_output))

{

$words_output[] = $keyword;

echo "<font face='Courier New' font size=18px font color=#FF9900>$letter</font><br /><br />";

echo "<font face='Courier New' font size=3px font color=#FBB917><a href='stack.php?search=$keyword&submit=Go!' style='text-decoration: none';>$keyword</a></font><br>";

}
}
}
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.