No es necesario que recorras los resultados por número de filas, es tan fácil como:
Código PHP:
Ver original$consulta1 = "Select * from orders,order_items where orders.orderid=order_items.orderid and orders.customerid='$codfactura'";
// En vez de contar las filas (porque no haces nada con ellas)
// Recorre directamente los resultados
$codlibro = $row['isbn'];
// Aquí haces la consulta para leer el libro
// Y actualizas el PDF
}
Por cierto, la librería mysql es obsoleta y va a desaparecer en Php 5.5, por lo que deberías cambiar a mysqli o PDO.
También, no veo necesario hacer dos consultas si puedes hacer todo solo con JOIN, ejemplo:
Código SQL:
Ver originalSELECT o.*, oi.*, a.* FROM orders o
JOIN order_items oi ON o.orderid = oi.orderid
JOIN articulos a ON oi.isbn = a.isbn
WHERE o.customerid = 'xxxx'
o = Alias para la tabla orders
oi = Alias para la tabla order_items
a = Alias para la tabla articulos
'xxxx' = Reemplázalo por el valor adecuado
Con esta consulta será suficiente para completar el ejemplo que puse al principio, todos los datos estarán en
$row['nombre_de_campo']
P.D. Parece que el problema original es que no estás avanzando el apuntador para acceder al juego de resultados y esto es causado por usar mysql_result() en lugar de mysql_fetch_****() que lee la fila actual y avanza el apuntador automáticamente