This should work for you.
You just have to create a counter in the PHP and then add that count to the id.
I have updated the JavaScript slightly as well.
Code:
<script language="javascript">
function toggle(num) {
var ele = document.getElementById("toggleText"+num);
var text = document.getElementById("displayText"+num);
if(ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "Show Available Languages";
}
else {
ele.style.display = "block";
text.innerHTML = "Hide Languages";
}
}
</script>
PHP Code:
$result_publication = mysql_query($query_publications) or die(mysql_error());
$num_rows_publication = mysql_num_rows($result_publication);
header_search_results();
$count = 0;
for($i=0; $i<$num_rows_publication; $i++)
{
$count++;
echo ("<p>" . mysql_result($result_publication, $i, "pubName") . "<a id='displayText".$count."' href='javascript:toggle(".$count.");'> Show Available Languages</a></p>");
$query_files = "SELECT * FROM files WHERE pubId = " .
mysql_result($result_publication, $i, "id") . " ORDER BY files.language";
$result_languages = mysql_query($query_files) or die(mysql_error());
$num_rows_languages = mysql_num_rows($result_languages);
echo("<div id='toggleText".$count."' style='display:none'>");
for($j=0; $j<$num_rows_languages;$j++)
{
echo("<table>");
echo("<tr><td class='language'>
<a href='" . mysql_result($result_languages, $j, "file") . "'>" . mysql_result($result_languages, $j, "language") . "</a></td></tr>");
echo("</table>");
}
echo("</div>");
echo("<hr/>");
}
}