$string="1. Tim Moltzen, 2. Joel Reddy, 3. Blake Ayshford, 4. Chris Lawrence, 5. James Tedesco, 6. Benji Marshall, 7. Braith Anasta, 8. Aaron Woods, 9. Robbie Farah, 10. Jack Buchanan, 11. Bodene Thompson, 12. Liam Fulton, 13. Adam Blair, 14. Ben Murdoch Masila, 15. Ava Seumanufagai 16. Matt Bell, 17. Eddy Pettybourne";
$string=explode(', ',$string);
foreach($string as $val)
{
$val=explode('. ',$val);
mysql_query('INSERT INTO yourtable (col_number,col_name) VALUES ("'.$val[0].'.","'.$val[1].'")';
}
No entiendo por qué desea insertar el período junto con el número, ya que esto significaría que la columna tiene que ser innecesariamente varchar en lugar de INT. De todos modos, es como lo pediste.
Cambiar mysql_query
a mysqli_query
si lo prefieres.
Para explotar entre números usa:
$string=preg_split('/ ?[0-9]+\.? /', $string, NULL, PREG_SPLIT_NO_EMPTY);
Pero ahora no tienes ningún número para cada nombre. Así que no podrás insertarlo así.