Counting start from 0, so:
$query = "SELECT * FROM email WHERE id = '".$novoarray[$numero]."'";
Need change to:
$query = "SELECT * FROM email WHERE id = '".$novoarray[$numero-1]."'";
Try to use this:
<?php
mysql_connect("localhost","root","") or die("problema na conexao");
mysql_select_db("trabalho1");
$idcategoria = $_GET["id"];
$querye = "SELECT ID,categoria FROM categoria WHERE ID = '".$idcategoria."'";
$resultse = mysql_query($querye) or die(mysql_error());
while ($rowe = mysql_fetch_array($resultse)) {
$categorianome = $rowe['categoria'];
}
echo"<center>";
echo "Nome da categoria: ".$categorianome."";
echo "<table border='2'>\n";
echo"<form>";
echo "<tr align='center'><td>Data de Criação</td><td>Nome</td><td>Email</td><td>Data da ultima Actualização</td></tr>";
$queryq = "SELECT * FROM emailcategoria WHERE categoria = '".$idcategoria."'";
$resultsq = mysql_query($queryq) or die(mysql_error());
while ($rowq = mysql_fetch_array($resultsq)) {
$novoarray = explode(' - ',$rowq['email']);
$numero = Count($novoarray);
for($cont=0;$cont<$numero;$cont++){
$query = "SELECT * FROM email WHERE id = '".$novoarray[$cont]."'";
$results = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($results)) {
echo "<tr align='center'>\n";
echo "<td><b></b>".$row['datahora']. "\n</td>";
echo "<td><b></b>".$row['nome']. "\n</td>";
echo "<td><b></b>".$row['email']. "\n</td>";
echo "<td><b></b>".$row['dataactual']. "\n</td></tr>";
}
}
}
echo "</form>\n";
echo "</table>\n";
echo"</center>";
?>
You use
while ($rowq = mysql_fetch_array($resultsq)) {
Two times..